【发布时间】:2020-09-03 17:36:15
【问题描述】:
我有一个嵌套导航器设置的案例。 app.js 保持已登录状态,并且导航器在 app.js 中调用 startnav 并传递已登录状态:
class StartupNav extends Component {
constructor(props) {
super(props);
console.log(props.loggedIn);
}
render() {
return (
<NavigationContainer independent={true}>
<Stack.Navigator>
{this.props.loggedIn ? (
<>
<Stack.Screen name="MainContainer" component={MainContainer} />
</>
) : (
<Stack.Screen
name="AuthStack"
component={AuthStack}
params="that" //props pass attempt which isnt successful
/>
)}
</Stack.Navigator>
</NavigationContainer>
);
}
}
export default StartupNav;
authStack 将登录部分保存为:
class AuthStack extends Component {
constructor(props) {
super(props);
console.log('props from authstack', props);
}
render() {
return (
<NavigationContainer independent={true}>
<Stack.Navigator>
<Stack.Screen name="Login" component={Login} />
<Stack.Screen name="ForgotPassword" component={ForgotPassword} />
</Stack.Navigator>
</NavigationContainer>
);
}
}
然后是登录屏幕,我在其中执行登录逻辑并尝试在 app.js 中设置状态 loggedIn=true。登录成功后,我需要打开包含已登录应用程序屏幕的 MainContainer。
我无法将上层 navScreen 的 props 传递到下层,以便在登录成功时调用 prop 函数。我像往常一样按照代码中的注释进行了尝试,但这甚至无效。 任何人都可以对此有所了解,或指出正确的方向。
我正在使用反应导航 5。
【问题讨论】:
标签: reactjs react-native react-navigation react-navigation-v5