React-Native生命周期:关闭应用程序并更改组件后,ComponentDidMount不起作用

时间:2019-07-02 13:43:22

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

我是React Native的新手,生命周期中的代码中有一个错误。

问题是在我这样做时开始的:

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

我在关闭应用程序后进入计时器时遇到的问题是componentDidMount()中的代码无法正常工作。当我在不关闭应用程序的情况下尝试相同操作时,一切正常,但是在关闭应用程序时,该组件不会“重新加载”或其他任何操作,因此我看不到任何更改。

Timer只是一个从服务器加载和发送数据的视图,而Dashboard仅有一个按钮可以转到Timer,在componentDidMount()中发送数据。

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

所以我需要的是关闭应用程序或第二次进入Timer时执行的操作,它第二次调用输入/输出componentDidMount / componentWillMount的自定义函数计时器和函数被冻结,什么也不做。

我知道可能有一种方法可以解决此问题,但是我想知道执行此操作的最佳方法。

谢谢你们!

1 个答案:

答案 0 :(得分:0)

componentDidMount在加载组件时仅工作一次。是您提到的指向导航板时,计时器组件是否已卸载?如果没有,它将不再被调用。 为了解决此问题,您需要卸载使用componentDidUpdate的组件。