【问题标题】:Correct approach to adding to FlatList添加到 FlatList 的正确方法
【发布时间】:2023-03-07 02:04:01
【问题描述】:

四处寻找将项目添加到平面列表的正确或最佳方式

我的第一个方法是简单地向状态添加一个项目。所以我尝试了这个:

var NewObject = {};
NewObject.Name = "New Object";
this.setState({
    Data: [...this.state.Data, ...[NewObject]]
});

但是,这样做似乎会导致列表中的所有内容都被读取,并且我会遇到各种关键错误。

is this.state.Data.push(NewObject);该方法?这似乎不允许重新加载

任何帮助都会很大!

【问题讨论】:

    标签: react-native react-native-flatlist


    【解决方案1】:

    你可以使用

    this.setState({Data: [...this.state.Data, newObject]})
    

    在 flatlist 中有一个“extraData”道具。使用它来通知 flatlist 其数据源中的任何更改。

    <FlatList
    ...
    extraData={this.state.Data}
    ...
    >
    

    this.state.Data.push(NewObject) 直接改变状态,永远不要这样做。

    P.s 你也可以将 FlatList 的父组件设置为 PureComponent 以获得更好的性能。

    【讨论】:

      猜你喜欢
      • 2022-12-23
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      相关资源
      最近更新 更多