执行setState()时数组未更新

时间:2019-08-13 11:49:58

标签: react-native setstate

我正在我的应用程序中实现搜索功能。为了显示数据,我使用了 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()中的数组。

1 个答案:

答案 0 :(得分:0)

我认为该方法需要更新。 首先,如果您一直在过滤状态中的原始数据并对其进行更新,则不会得到正确的结果。 并且不要将this.state用作extraData的{​​{1}}道具。 而是将输入关键字保存到状态,并将该值设置为FlatList

extraData道具