【问题标题】:FlatList only updates after user interaction occursFlatList 仅在用户交互发生后更新
【发布时间】:2019-04-01 01:49:06
【问题描述】:

我有一个组件从导航道具中获取数据,我用它来设置 CDM() 中的状态:

this.setState({
  data: this.props.navigation.getParam('data', 'Some Data')
})

然后在 FlatList 中使用该状态。 当 props 改变时……FlatList 不会更新……直到客户端触摸屏幕。

我已经尝试将道具直接放入FlatList:

data={this.props.navigation.getParam('data', 'Some Data')}

我尝试过使用 extraData 属性:

<FlatList
   style={{ flexGrow: 1, marginTop: 10 }}
   data={this.state.data}
   keyExtractor={(item, index) => index.toString()}
   extraData={this.props.navigation.getParam('data', 'Some Data')}
   renderItem={({ item }) => {...}>

我尝试使用 componentDidUpdate() 在 props 更改但从未调用 CDU 时重置状态。

编辑: 我有一种感觉是因为当我添加项目时;我正在导航回来 (navigation.goBack()) goBack() 不会刷新状态?我不确定。

【问题讨论】:

    标签: react-native react-native-flatlist react-props


    【解决方案1】:

    找到了:

    https://github.com/react-navigation/react-navigation/issues/922#issuecomment-344752635

    它本质上是将一个函数作为参数传递并调用该函数以更改父级的状态,然后调用 goBack()

    【讨论】:

      猜你喜欢
      • 2018-05-23
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 2012-11-29
      • 2015-01-29
      • 2021-12-10
      • 1970-01-01
      • 2021-07-23
      相关资源
      最近更新 更多