【问题标题】:React The action 'NAVIGATE' with payload {"name":""} was not handled by any navigator反应带有有效载荷 {"name":""} 的操作'NAVIGATE'没有被任何导航器处理
【发布时间】:2021-09-30 10:06:23
【问题描述】:

我正在尝试路由我的用户

const tryLogin = async () => {
    try {
      await firebase.auth().onAuthStateChanged((user) => {
        if (user != null) {
          
          props.navigation.navigate("Page1");
        } else {
          props.navigation.navigate("Page3");
        }
      });
    } catch {
      console.log("errrors");
    }
  };

我的导航是这样的

    <NavigationContainer>
      <Drawer.Navigator>
        {userToken == null ? (
          <>
            <Drawer.Screen
              name="Splash"
              component={SplashScreen}
              options={{ headerShown: false }}
            />
            <Drawer.Screen name="Page1" component={Page1} options={{}} />
            <Drawer.Screen name="Page2" component={Page2} options={{}} />
          </>
        ) : (
          <>
            <Drawer.Screen name="Page3" component={Page3} options={{}} />
            <Drawer.Screen name="Page4" component={Page4} />
            <Drawer.Screen name="Page5" component={Page5} />
            <Drawer.Screen name="Page6" component={Page6} />
            <Drawer.Screen name="Page7" component={Page7} />
          </>
        )}
      </Drawer.Navigator>
    </NavigationContainer>

它与第 1 和第 2 页组件完美配合,但是当我尝试重定向到第 3 页组件时,出现以下错误 带有有效负载 {"name":"Page3"} 的操作“NAVIGATE”未被任何导航器处理。

【问题讨论】:

    标签: javascript reactjs react-navigation


    【解决方案1】:

    您在代码中混合了异步和承诺功能。

    您还应该在触发navigate 操作的代码中检查userToken 条件。
    根据您的逻辑,如果userToken 存在,则不会呈现Page3 组件。
    这就是错误的原因。

    尝试像这样更改您的代码:

    const tryLogin = async () => {
      try {
        const user = await firebase.auth().onAuthStateChanged();
    
        if (user !== null) {
          props.navigation.navigate('Page1');
        } else if (userToken !== null) {
          props.navigation.navigate('Page3');
        }
      } catch {
        console.log('errrors');
      }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      相关资源
      最近更新 更多