如何刷新componentdidmount中的屏幕(反应本机)?

时间:2020-05-02 19:25:51

标签: react-native react-native-android react-navigation react-native-flatlist react-native-navigation

我正在使用底部导航,我从componentDidMount中的asyncStorage获取值,但是每次我必须硬刷新新值时,当我请从第一个屏幕转到第二个屏幕并在第一个屏幕中获取新值时,但新值不会更新。那么如何用新值刷新第一个屏幕

3 个答案:

答案 0 :(得分:2)

在底部导航中,组件不会超出范围。换句话说,组件不会重新加载,因此不会再次调用componentDidMount()。最好使用Redux或Mobx等状态管理。让他们处理更改,而不是从asyncStorage读取。如果Mobx商店得到更新,则无论您在哪里访问它,它都会自动刷新您的值。

答案 1 :(得分:1)

ComponentDidMount仅在开始时执行。因此,如果您想在指定时间后一次又一次地更新数据,则可能必须在componentDidMount中使用诸如setInterval之类的内容,或者如果您希望在用户单击某项内容时获取新数据,则可以通过创建一个新的单独函数来做到这一点将获取数据并更新状态。 每当您更新状态时,组件几乎都会立即重新呈现。

答案 2 :(得分:0)

尝试在导航选项中将unmountOnBlur设置为true

因此,每当屏幕聚焦不清晰时,它都会被卸载,而当您回到屏幕时,它将再次被安装并且数据将被刷新

Using unmountOnBlur - Bottom Navigation