React Native登录后仪表盘内正常导航的实现方法咨询
仪表盘内部页面的导航实现方案
先梳理下你的路由结构:外层Authscreens栈里的Dash屏幕对应Main组件,而你定义的Dash函数是内部的栈导航。要让内部导航正常工作,只需调整组件嵌套关系和导航调用逻辑:
1. 修正组件嵌套关系
你的Main组件需要直接渲染内部的Dash导航栈,这样内部页面才能获取到正确的导航上下文:
export function Main() { return <Dash />; }
2. 调整内部导航的调用方式
在仪表盘内的组件(比如Main里的按钮,或是places/Cars组件内的导航按钮),不需要指定外层的Dash,直接调用内部栈的屏幕名称即可:
const navigation = useNavigation(); <TouchableOpacity loading={loading} onPress={() => navigation.navigate("places")}> <Text style={styles.signup}>Places</Text> </TouchableOpacity>
如果要从places页面跳转到Cars页面,写法同理:
// 在places组件内 <TouchableOpacity onPress={() => navigation.navigate("Cars")}> <Text>Go to Cars</Text> </TouchableOpacity>
3. 原写法的问题说明
你之前用navigation.navigate("Dash", {screen:"places"})是跨嵌套导航栈的写法,但当前组件的navigation上下文已经是内部栈的导航对象,直接指定内部屏幕名称就能完成跳转,无需再关联外层的Dash屏幕。
内容的提问来源于stack exchange,提问作者Nave3n
相关产品推荐
相关产品推荐

