【问题标题】: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 之类的东西,或者如果您想在用户点击某物时获取新数据,那么您可以通过创建一个新的单独函数来做到这一点将获取数据并更新状态。 每当您更新状态时,组件几乎会立即重新呈现。

    【讨论】:

      【解决方案3】:

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

      因此,每次屏幕失焦时,它都会被卸载,当您返回屏幕时,它会再次安装并刷新数据

      Using unmountOnBlur - Bottom Navigation

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-04
        • 2020-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多