【问题标题】:React-Native lifecycle : ComponentDidMount doesn't work after close the app and change the componentReact-Native 生命周期:关闭应用程序并更改组件后 ComponentDidMount 不起作用
【发布时间】:2019-07-02 13:43:22
【问题描述】:

我是 React Native 的新手,我的代码在生命周期中存在错误。

当我这样做时问题就开始了:

  1. 查看仪表板
  2. 去查看计时器
  3. componentDidMount() 的 Timer 上做一些事情
  4. 关闭应用
  5. 打开应用程序(欢迎视图)并转到计时器
  6. 在 Timer 上做一些事情
  7. 转到仪表板
  8. 再次转到计时器并尝试在componentDidMount() //Here's the error 中执行某些操作

当我在关闭应用程序后转到计时器时,问题是 componentDidMount() 中的代码不起作用。当我在不关闭应用程序的情况下尝试相同的操作时一切正常,但是当我关闭它时,组件不会“重新加载”或任何东西,所以我看不到任何变化。

计时器只是一个从服务器加载和发送数据的视图,仪表板只有一个按钮可以转到计时器,在componentDidMount() 中发送数据。

(我认为这不重要,但我正在使用 Expo)

所以我需要的是当我关闭应用程序时,或者当我第二次转到 Timer 时它会调用自定义函数 in/out componentDidMount/componentWillMount,现在是第二次 Timer 和函数被冻结,不做任何事情。

我知道可能有一种方法可以解决这个问题,但我想知道最好的方法。

谢谢你们!

【问题讨论】:

    标签: react-native expo react-native-navigation


    【解决方案1】:

    componentDidMount 仅在组件加载时工作一次。当您导航到仪表板时,您的计时器组件是否已卸载,如前所述。如果不是,则不会再次调用它。 为了解决这个问题,您需要卸载使用 componentDidUpdate 的组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 2019-01-02
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多