首页 > 解决方案 > React Native条件渲染“渲染没有返回任何内容”

问题描述

所以我试图有条件地呈现我的抽屉菜单。我有这个显示组件

const Display = () => {
  const getData = async () => {
    try {
      const value = await AsyncStorage.getItem('loggedIn');

      if (value !== null) {
        let check4Login = value === 'true';
        if (check4Login === true) {
          console.log('logged in user ');
          return (
            <NavigationContainer>
              <Drawer.Navigator initialRouteName="Home">
                <Drawer.Screen name="Home" component={HomeArea} />
                <Drawer.Screen name="Login" component={LoginPage} />
                <Drawer.Screen name="User Dashboard" component={MyAccount} />
                <Drawer.Screen name="Settings" component={Settings} />
                <Drawer.Screen name="Logout" component={Logout} />
              </Drawer.Navigator>
              <StatusBar barStyle="dark-content" />
            </NavigationContainer>
          );
        } else {
          console.log('logged out user ');
          return (
            <NavigationContainer>
              <Drawer.Navigator initialRouteName="Home">
                <Drawer.Screen name="Home" component={HomeArea} />
                <Drawer.Screen name="Login" component={LoginPage} />
                <Drawer.Screen name="User Dashboard" component={MyAccount} />
                <Drawer.Screen name="Settings" component={Settings} />
                <Drawer.Screen name="Logout" component={Logout} />
              </Drawer.Navigator>
              <StatusBar barStyle="dark-content" />
            </NavigationContainer>
          );
        }
      }
    } catch (e) {
      // error reading value
    }
  };

  getData();
};

在这个组件中,我正在检查用户当前是否已登录,然后如果用户已登录,我将返回正确的抽屉菜单。

然后我调用显示组件

const App = () => {
  checkLogin();

  return <Display />;
};

这里要显示。但由于某种原因,我收到错误“渲染没有返回任何内容”,即使代码正按应有的方式返回。例如,现在我得到了 console.log “登录用户”,但它似乎没有看到我假设的返回,因此出现了错误。难道我做错了什么?非常感谢任何建议,非常感谢=]

标签: react-native

解决方案


推荐阅读