我尝试使用文字输入来过滤ViewList,但似乎是因为' text'的初始状态。 "",它总是以某种方式循环,它返回到""删除所有类型
过滤功能
filterSearch (texto) {
const newData = this.Data.filter((item) => {
const itemData = item.nombre.toUpperCase()
const textData = this.texto.toUpperCase()
return itemData.indexOf(textData) > -1
})
this.setState({
dataSource: this.state.dataSource.cloneWithRows(newData),
text: texto
})
}

并从textInput
调用
<TextInput
style={styles.busqueda}
placeholder= 'Buscar'
onChangeText={(text) => this.filterSearch.bind(text)}
value={this.state.text}
>
</TextInput>
&#13;
似乎filterSearch不是正确的方式......
答案 0 :(得分:0)
onChangeText={(text) => this.filterSearch(text)}
或
onChangeText={this.filterSearch.bind(this)}
答案 1 :(得分:0)
您需要进行2项更改:
1 / 使用正确的语法执行您的功能:
onChangeText={(text) => this.filterSearch(text)}
实际上,onChangeText
函数已经与组件词汇绑定(使用() => {}
)
2 / 您还需要将filterSearch
函数绑定到react组件,然后您可以在其中使用this
(通过以下任一方式):
a)使用词汇绑定:
filterSearch = (texto) => {
//...
}
b)在构造函数中绑定函数:
constructor(props) {
super(props);
// ...
this.filterSearch = this.filterSearch.bind(this);
}