Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 错误:操作';导航';对于有效负载{“name”:“Home”}未由任何导航器处理_React Native_React Navigation Stack_React Navigation V5_React Navigation Bottom Tab - Fatal编程技术网

React native 错误:操作';导航';对于有效负载{“name”:“Home”}未由任何导航器处理

React native 错误:操作';导航';对于有效负载{“name”:“Home”}未由任何导航器处理,react-native,react-navigation-stack,react-navigation-v5,react-navigation-bottom-tab,React Native,React Navigation Stack,React Navigation V5,React Navigation Bottom Tab,当我登录时,我成功登录,但私有路由无法重定向到主屏幕 当我重新启动应用程序并被引导到主屏幕时,然后当我尝试注销时。我也无法直接进入登录屏幕。。我的逻辑有问题吗。。 我已经将导航分为两种:私人导航和公共导航/ 这是私人路线 import * as React from 'react'; import {Text} from 'react-native'; import {createStackNavigator} from '@react-navigation/stack'; import {cr

当我登录时,我成功登录,但私有路由无法重定向到主屏幕 当我重新启动应用程序并被引导到主屏幕时,然后当我尝试注销时。我也无法直接进入登录屏幕。。我的逻辑有问题吗。。 我已经将导航分为两种:私人导航和公共导航/

这是私人路线

import * as React from 'react';
import {Text} from 'react-native';
import {createStackNavigator} from '@react-navigation/stack';
import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
import {NavigationContainer} from '@react-navigation/native';
import HomeScreen from '../../screens/Home';
import MatchesScreen from '../../screens/Matches';
import MessagesScreen from '../../screens/Messages';
import ProfileScreen from '../../screens/Profile';
import SettingScreen from '../../screens/Settings';
import Icon from '../../components/Icon';
import styles from '../../assets/styles';

const Tab = createBottomTabNavigator();
const Stack = createStackNavigator();

const ExploreStackNavigator = () => {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Explore" component={HomeScreen} />
    </Stack.Navigator>
  );
};

const MatchesStackNavigator = () => {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Matches" component={MatchesScreen} />
    </Stack.Navigator>
  );
};

const ChatStackNavigator = () => {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Matches" component={MessagesScreen} />
    </Stack.Navigator>
  );
};

const SettingStackNavigator = () => {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Settings" component={SettingScreen} />
    </Stack.Navigator>
  );
};

const HomeNavigator = () => {
  return (
    <Tab.Navigator
      screenOptions={({route}) => ({
        tabBarIcon: ({focused}) => {
          const iconFocused = focused ? '#7444C0' : '#363636';
          let iconName;

          if (route.name === 'Explore') {
            iconName = 'explore';
          } else if (route.name === 'Matches') {
            iconName = 'heart';
          } else if (route.name === 'Chat') {
            iconName = 'chat';
          } else if (route.name === 'Setting') {
            iconName = 'chevronLeft';
          }
          // You can return any component that you like here!
          return (
            <Text style={[styles.iconMenu, {color: iconFocused}]}>
              <Icon name={iconName} />
            </Text>
          );
        },
      })}
      tabBarOptions={{
        activeTintColor: '#7444C0',
        inactiveTintColor: '#363636',
        labelStyle: {
          fontSize: 14,
          textTransform: 'uppercase',
          paddingTop: 10,
        },
        style: {
          borderTopWidth: 0,
          paddingVertical: 20,
        },
      }}>
      <Tab.Screen name="Explore" component={ExploreStackNavigator} />
      <Tab.Screen name="Matches" component={MatchesStackNavigator} />
      <Tab.Screen name="Chat" component={ChatStackNavigator} />
      <Tab.Screen name="Setting" component={SettingStackNavigator} />
    </Tab.Navigator>
  );
};

function AppNavigator() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeNavigator} />
        <Stack.Screen name="Profile" component={ProfileScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

export default AppNavigator;
import*as React from'React';
从“react native”导入{Text};
从'@react navigation/stack'导入{createStackNavigator};
从“@react navigation/bottom tabs”导入{createBottomTabNavigator};
从'@react-navigation/native'导入{NavigationContainer};
从“../../screens/Home”导入主屏幕;
从“../../screens/Matches”导入MatchessScreen;
从“../../screens/Messages”导入MessagesScreen;
从“../../screens/Profile”导入ProfileScreen;
从“../../screens/Settings”导入设置屏幕;
从“../../components/Icon”导入图标;
从“../../assets/styles”导入样式;
const Tab=createBottomTabNavigator();
const Stack=createStackNavigator();
const ExploreStackNavigator=()=>{
返回(
);
};
常量MatchesStackNavigator=()=>{
返回(
);
};
const ChatStackNavigator=()=>{
返回(
);
};
常量设置StackNavigator=()=>{
返回(
);
};
常量HomeNavigator=()=>{
返回(
({
tabBarIcon:({focused})=>{
const iconFocused=focused?#7444C0':#363636';
让我来;
如果(route.name==='Explore'){
iconName=‘探索’;
}else if(route.name==='Matches'){
iconName=‘心’;
}else if(route.name==='Chat'){
iconName='聊天';
}else if(route.name==='Setting'){
iconName='chevronLeft';
}
//您可以在这里返回您喜欢的任何组件!
返回(
);
},
})}
禁忌选项={{
activeTintColor:“#7444C0”,
InactiveIntColor:“#363636”,
标签样式:{
尺寸:14,
textTransform:'大写',
paddingTop:10,
},
风格:{
borderTopWidth:0,
填充垂直:20,
},
}}>
);
};
函数AppNavigator(){
返回(
);
}
导出默认AppNavigator;
这是公共路由——它处理

import * as React from 'react';
import {createStackNavigator} from '@react-navigation/stack';
import {NavigationContainer} from '@react-navigation/native';
import LoginScreen from '../../screens/Login';
import RegisterScreen from '../../screens/Register';
import ForgotPasswordScreen from '../../screens/ForgotPassword';
import WelcomeScreen from '../../screens/Welcome';
import QuestionaireScreen from '../../screens/Questionaire';

const Stack = createStackNavigator();

const AuthNavigator = () => {
  return (
    <NavigationContainer>
      <Stack.Navigator
        screenOptions={{
          headerShown: false,
          headerLeft: () => null,
        }}>
        <Stack.Screen name="Welcome" component={WelcomeScreen} />
        <Stack.Screen name="Login" component={LoginScreen} />
        <Stack.Screen name="Register" component={RegisterScreen} />
        <Stack.Screen name="Questionaire" component={QuestionaireScreen} />
        <Stack.Screen name="ForgotPassword" component={ForgotPasswordScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
};

export default AuthNavigator;
import*as React from'React';
从'@react navigation/stack'导入{createStackNavigator};
从'@react-navigation/native'导入{NavigationContainer};
从“../../screens/Login”导入LoginScreen;
从“../../screens/Register”导入注册表屏幕;
从“../../screens/ForgotPassword”导入ForgotPasswordScreen;
从“../../screens/Welcome”导入WelcomeScreen;
从“../../screens/Questionaire”导入QuestionAirScreen;
const Stack=createStackNavigator();
常量AuthNavigator=()=>{
返回(
无效的
}}>
);
};
导出默认AuthNavigator;
这里是一个尝试切换btw这两条路线的地方

import React, {useState, useEffect} from 'react';
import AsyncStorage from '@react-native-community/async-storage';
import {SafeAreaProvider} from 'react-native-safe-area-context';

// import public navigation
import AuthenticationNavigator from './public';
import RootNavigator from './private';

const AppNavigator = () => {
  const [value, setValue] = useState('value');

  const readTokenFromStorage = async () => {
    const token = await AsyncStorage.getItem('token');
    console.log('Token :', token);
    setValue(token);
  };

  useEffect(() => {
    readTokenFromStorage();
  }, []);

  return (
    <SafeAreaProvider>
      {!value ? <AuthenticationNavigator /> : <RootNavigator />}
    </SafeAreaProvider>
  );
};

export default AppNavigator;
import React,{useState,useffect}来自“React”;
从“@react native community/async storage”导入异步存储;
从“react native safe area context”导入{SafeAreaProvider};
//导入公共导航
从“/public”导入AuthenticationNavigator;
从“/private”导入RootNavigator;
常量AppNavigator=()=>{
const[value,setValue]=useState('value');
const readTokenFromStorage=async()=>{
const token=await AsyncStorage.getItem('token');
log('Token:',Token);
设置值(令牌);
};
useffect(()=>{
readTokenFromStorage();
}, []);
返回(
{!值?:}
);
};
导出默认AppNavigator;