【问题标题】:React Navigation with Async Storage React Native使用异步存储的 React Navigation React Native
【发布时间】:2022-01-17 07:51:40
【问题描述】:

我一直在尝试寻找资源/代码来帮助我,但我遇到了困难。如果他们登录到异步存储,我目前会保存用户身份验证令牌。在加载应用程序的 App.js 中,我调用 Async Storage.getItem() ,如果令牌不为空,我希望它们转到主屏幕,但如果为空,则转到我的欢迎屏幕。我无法设置导航器方面。

App.js

import Navigator from "./homeStack";

export default function App() {
  const [isLogedin, setIsLogedin] = useState(false);
  const readData = async () => {
    try {
      let token = await AsyncStorage.getItem("token");
      if (token != null) {
        setIsLogedin(true);
        //Navigate to the home screen
      }
    } catch (e) {
      console.log("read data error" + e);
    }
  };

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

  return <Navigator />;
}

导航器组件

const screens = {
  welcome: {
    screen: welcome,
    navigationOptions: {
      headerShown: false,
    },
  },
 
  HomeScreen: {
    screen: homeScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
};

const homeStack = createStackNavigator(screens);

export default createAppContainer(homeStack);


我缺少什么/如何修复我的代码?默认情况下,它以欢迎屏幕启动,但如果用户已经登录,则转到主屏幕。

【问题讨论】:

  • 看不到您是如何保存会话值的。但是您可以比较 here 中的异步存储代码

标签: react-native expo react-navigation asyncstorage


【解决方案1】:

这里有一个link,关于如何从 react-native-navigation 本身进行操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2019-10-25
    • 1970-01-01
    • 2021-03-18
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多