我正在我的应用程序中实现搜索功能。为了显示数据,我使用了 FlatList 。我尝试了网络上的所有方法,但仍然无法根据搜索词刷新列表。
<AppTextInput
placeholder="Search"
onChangeText={text => {
var backUp = [...this.state.originalData];
var temp = backUp.filter(item => {
if (item.toLowerCase().match(text.toLowerCase())) {
return item;
}
});
this.setState({
originalData: temp
});
}}
/>
<FlatList
data={this.state.originalData}
extraData={this.state}
renderItem={item => (
<View key={item.item}>
<Text>{item.item}</Text>
</View>
)}
keyExtractor={(item, index) => item}
/>
请让我知道如何更新setState()
中的数组。
答案 0 :(得分:0)
我认为该方法需要更新。
首先,如果您一直在过滤状态中的原始数据并对其进行更新,则不会得到正确的结果。
并且不要将this.state
用作extraData
的{{1}}道具。
而是将输入关键字保存到状态,并将该值设置为FlatList
extraData
道具