【发布时间】:2018-12-09 20:36:00
【问题描述】:
我已经设置了一个 StackNavigator,它将触发一个 redux 操作来获取 componentDidMount 上的数据,在导航到另一个屏幕并返回到上一个屏幕后,componentDidMount 不再触发并且我看到了一个白色的屏幕。我尝试使用StackActions.reset 重置 StackNavigator,但这只会导致我的其他屏幕也无法安装,进而显示一个空屏幕。有没有办法在this.props.navigation.goBack()之后强制componentDidMount?
返回功能
_goBack = () => {
this.props.navigation.goBack();
};
导航功能到新屏幕
_showQuest = (questId, questTitle ) => {
this.props.navigation.navigate("Quest", {
questId,
questTitle,
});
};
编辑: 嗨,我仍然坚持这个问题,想知道 SO 社区是否有解决方案来强制在调用 Navigation.goBack() 之后调用 componentDidMount,或者更确切地说如何在 this.props.navigation.navigate 之后卸载组件叫
【问题讨论】:
-
你是如何渲染你的组件的?可能是你的其他组件在导航发生变化时并没有真正卸载,因此返回时不会再次调用
componentDidMount。 -
导航到新界面后,
componentDidMount会第一次被调用,返回上一屏后不再调用。导航到新屏幕后如何强制卸载屏幕?
标签: javascript reactjs react-native react-redux react-navigation