我的 React Native 项目中有以下结构,由这个答案建议:
export const Root = () => {
const RootStack = useMemo(() => createStackNavigator(), []);
const HomeStack = useMemo(() => createStackNavigator(), []);
function renderHomeStack() {
return (
<HomeStack.Navigator>
<HomeStack.Screen name="Home" component={HomeScreen} />
<HomeStack.Screen name="Settings" component={SettingsScreen} />
</HomeStack.Navigator>
);
}
function renderRootStack() {
return (
<RootStack.Navigator>
<RootStack.Screen name="Login" component={LoginScreen} />
<RootStack.Screen
name="HomeStack"
options={{
presentation: 'modal',
}}
component={renderHomeStack}
/>
</RootStack.Navigator>
);
}
return renderRootStack();
};
目前,我想从设置屏幕返回登录屏幕。
我尝试了这个问题下的解决方案,但没有奏效。
我还尝试使用
DeviceEventEmitter
向登录屏幕发送事件来调用 navigation.popToTop() 或 navigation.goBack() - 这也不起作用。