react-navigation 为什么每次都触发 componentDidMount ?

import {NavigationActions, StackActions} from 'react-navigation';

function navigate(routeName, params) {
  _navigator.dispatch(
    NavigationActions.navigate({
      routeName,
      params,
    }),
  );
}

function back() {
  _navigator.dispatch(NavigationActions.back());
}

1.A 跳 B

navigate('B')

此时B触发了 componentDidMount

2.B 返回

back()

3.A 跳 B

navigate('B')

此时B又触发了 componentDidMount
  • 请问为什么每次都触发 componentDidMount 呢?
  • 是因为B返回的时候B就销毁了吗?
  • 如果B页面是一个下载任务的页面,该怎么写呢?
阅读 2.4k
1 个回答

是的,B返回之后B页面就销毁了
如果你想要B的state不跟随B页面一起被销毁,你需要把相应的state保存到上一层组件中,或者保存到glboal中

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题