簡體   English   中英

我無法在 React-Native 中的不同導航器之間導航

[英]I can not Navigating Between Different Navigators in React-Native

我已經完成了 3 個路由文件:

  1. app.routes.js(擁有 LOGGED 用戶可以訪問的路由)

 import React from 'react'; import { createStackNavigator } from '@react-navigation/stack'; import Dashboard from '../pages/Dashboard'; const AppStack = createStackNavigator(); const AppRoutes = () => ( <AppStack.Navigator> <AppStack.Screen name='Dashboard' component={Dashboard} /> </AppStack.Navigator> ); export default AppRoutes;

  1. auth.routes.js(在此路由上為未登錄的用戶提供登錄屏幕)

 import React from 'react'; import { createStackNavigator } from '@react-navigation/stack'; import SignInView from '../pages/SignIn'; import Loading from '../pages/Loading'; const AuthStack = createStackNavigator(); const AuthRoutes = () => ( <AuthStack.Navigator> <AuthStack.Screen name='SignIn' component={SignInView} /> <AuthStack.Screen name='Loading' component={Loading} /> </AuthStack.Navigator> ); export default AuthRoutes;

  1. routes.js(此路由驗證用戶是否登錄,並重定向到正確的堆棧)

 import React from 'react'; import AppRoutes from './app.routes'; import AuthRoutes from './auth.routes'; import { Logado } from '../services/apiUser'; const Routes = () => { //aqui vai o if com o retorno se esta ou nao logado se nao authroutes se sim approutes if(Logado){ return <AppRoutes />; }else{ return <AuthRoutes />; } }; export default Routes;

現在我正在嘗試在 app.routes.js 文件中調用 AppStack 上的 Dahsboard 屏幕,如下所示:

 import {ButtonDashboard,Container,ButtonTitle,TextInformation,} from './styles'; const Dashboard = ({ navigation }) => { return ( <Container> <ButtonDashboard onPress={() => navigation.navigate('AuthStack', {screen: 'Dashboard' })}> <ButtonTitle>Call Dashboard screen</ButtonTitle> </ButtonDashboard> </Container> ); }; export default Dashboard;

我按照文檔並仍然收到此錯誤:

console.error: 帶有有效載荷 {"neme":"AuthStack", "params": {screen":"Dashboard"}} 的操作 'NAVIGATE' 未被任何導航器處理。

你有一個名為“AuthStack”的屏幕嗎?

如果您嘗試導航到嵌套導航器中的屏幕,請參閱(反應導航站點)。

這是你的 AuthStack

 <AuthStack.Navigator>
        <AuthStack.Screen
            name='SignIn'
            component={SignInView}
        />
        <AuthStack.Screen
            name='Loading'
            component={Loading}
        />
    </AuthStack.Navigator>

在這里,我們沒有任何名為“儀表板”的屏幕! 所以 screen 的有效值可以是SigninLoading 因此,當您想導航到任何屏幕時,請避免使用屏幕道具或傳遞已定義的有效屏幕名稱! 也不是堆棧,而是您使用名為AuthRoutes的堆棧創建的組件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM