尝试使用Redux和Saga将导航添加到React Native应用。它适用于一个屏幕,但是在添加AppNavigator这样的屏幕时,它的行为很奇怪
import HomeScreen from '../screens/fake/HomeScreen';
import LoginScreen from '../screens/fake/LoginScreen';
import SplashScreen from '../screens/fake/SplashScreen';
export const AppNavigator = createStackNavigator({
Splash: SplashScreen,
Home: HomeScreen,
Login: LoginScreen
});
每个屏幕都是这样的控件: 类HomeScreen
extends React.Component {
render() {
return (
<View>
<Button
title="Go to Login"
onPress={() => this.props.navigation.navigate('Login')}
/>
<Button
title="Go to Splash"
onPress={() => this.props.navigation.navigate('Splash')}
/>
</View>
);
}
};
即仅包含应该导航到另一个屏幕的按钮。确实如此。但是在此之后,事件Navigation/NAVIGATE
使用户返回上一页。
第一个事件Navigation/NAVIGATE
包含正确的路由密钥。但是第二次出现-Navigation/COMPLETE_TRANSITION
(更确切地说:{type: "Navigation/COMPLETE_TRANSITION", key: "StackRouterRoot"}
)将用户返回到上一个屏幕。
有什么想法吗?