我遇到了这个解决方案,试图订阅导航生命周期的更新
navigator.js
const App = createStackNavigator(
{
screen1: { screen: MainScreen },
screen2: { screen: SecondaryScreen },
},
{
cardStyle: {
backgroundColor: 'transparent'
}
}
);
const MainNavigator = createAppContainer(App);
export default MainNavigator;
我想知道是否可以订阅此navigator
文件中的事件?或者我别无选择,只能在每个单独的屏幕上订阅?
您可以为每个屏幕添加侦听器
constructor(props) {
super(props);
this.props.navigation.addListener(
'willFocus',//event name
payload => {
//do your work here
}
);
}
其他事件名称:'onDidFocus', 'onWillBlur' ,'onDidBlur'
参考