【问题标题】:Array not updating when doing setState()执行 setState() 时数组未更新
【发布时间】:2019-08-13 11:49:58
【问题描述】:

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

【问题讨论】:

    标签: react-native setstate


    【解决方案1】:

    我认为这种方法需要更新。 首先,如果你不断过滤状态中的原始数据并更新它,你将不会得到正确的结果。 并且不要将this.state 用作extraDataFlatList 的道具。 而是将输入关键字保存到状态并将该值设置为extraDataFlatList 的道具

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      • 2022-11-22
      相关资源
      最近更新 更多