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页面是一个下载任务的页面,该怎么写呢?
是的,B返回之后B页面就销毁了
如果你想要B的state不跟随B页面一起被销毁,你需要把相应的state保存到上一层组件中,或者保存到glboal中