我正在使用QRCode扫描器和React Navigation构建一个应用程序。从QRScanner导航到另一个屏幕后,QRScanner仍处于活动状态。我发现,必须使用StackActions重置导航器(对吗?)。我在成功屏幕(QRScanner之后)中对此进行了尝试:
const resetAction = StackActions.reset({
index: 3,
actions: [NavigationActions.navigate({ routeName: 'VerificationSuccess' })],
});
this.props.navigation.dispatch(resetAction);
但是它不起作用。不幸的是,我可以找到任何教程... 这是我的导航器:
import { createStackNavigator } from 'react-navigation';
import VerificationScreen from './VerificationScreen';
import QRScanner from './QRScanner';
import ChatG from '../ChatG';
import VerificationSuccess from './VerificationSuccess';
export default createStackNavigator(
{
VerificationScreen: {
screen: VerificationScreen,
},
QRScanner: {
screen: QRScanner,
},
VerificationSuccess: {
screen: VerificationSuccess,
},
ChatG: {
screen: ChatG,
}
}
);
有人可以帮我吗?
答案 0 :(得分:0)
您可能还不熟悉SwitchNavigator。 SwitchNavigator的目的是一次只显示一个屏幕。
按如下所示使用switchStackNavigator:
$ npx jest --version
v22.4.4
$ node --version
v10.6.0
下面的完整示例
const AppStack = AppStackNavigator;
const AuthStack = AuthStackNavigator;
export default createSwitchNavigator(
{
AuthLoading: AuthLoadingScreen,
App: AppStack,
Auth: AuthStack
},
{
initialRouteName: "AuthLoading"
}
);