【问题标题】:How to refresh screen in componentdidmount ( react native )?如何在 componentdidmount 中刷新屏幕(反应原生)?
【发布时间】:2020-05-02 19:25:51
【问题描述】:
我使用底部导航,我在 componentDidMount 中从 asyncStorage 中获取值,但每次我必须硬刷新新值时,当我请第一个屏幕到第二个屏幕并在第一个屏幕中获取新值但新值不会更新时。那么如何用新值刷新第一个屏幕
【问题讨论】:
标签:
react-native
react-native-android
react-navigation
react-native-flatlist
react-native-navigation
【解决方案1】:
在底部导航中,组件不会超出范围。换句话说,组件不会重新加载,因此不会再次调用 componentDidMount()。最好使用像 Redux 或 Mobx 这样的状态管理。让他们处理更改,而不是从 asyncStorage 中读取。如果 Mobx 商店更新了,它会自动刷新你在任何地方访问它的值。
【解决方案2】:
ComponentDidMount 仅在开始时执行。因此,如果您想在指定时间后一次又一次地更新数据,您可能必须在 componentDidMount 中使用 setInterval 之类的东西,或者如果您想在用户点击某物时获取新数据,那么您可以通过创建一个新的单独函数来做到这一点将获取数据并更新状态。
每当您更新状态时,组件几乎会立即重新呈现。