【问题标题】:Flatlist data is lost when changing screens更换屏幕时平面列表数据丢失
【发布时间】:2021-06-10 22:28:18
【问题描述】:

我有一个屏幕,其中显示了一个包含一些数据的平面列表,但是当我返回上一个屏幕并带着平面列表回到这个区域时,那里的数据已经不多了。我使用 React Navigation 在屏幕之间移动并移动数据。

这是我用来返回的代码:

onPress={() => this.props.navigation.goBack()}

【问题讨论】:

  • 您从哪里获取要放入平面列表的数据?是在this.state吗?
  • 是的,我从this.state获取数据

标签: javascript reactjs react-native react-navigation react-native-flatlist


【解决方案1】:

当您在第一页时,只有该页面被挂载。然后您使用平面列表转到第 2 页。现在 page1 和 page2 都已挂载。

当你使用navigation.goBack() 时,page2 被卸载。这意味着第 2 页上的this.state 已被删除。

所以现在当你第二次进入 page2 时,它会被重新挂载(所以使用了 new/empty 状态)

如果您想保留挂载/卸载/重新挂载之间的状态,您将需要一个状态管理工具,或者通过导航器传递所有数据。

【讨论】:

  • 有什么我可以解决的吗?
  • 这取决于您的项目。外部状态管理(如 Redux)是一种选择,但是,对于这种情况,它可能是矫枉过正的。
猜你喜欢
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
相关资源
最近更新 更多