使用 useEffect 渲染来反应原生 asyncStorage

问题描述 投票:0回答:1

我正在尝试从本地存储中获取项目,但它没有正确地与我一起渲染,我应该通过对代码进行任何更改来刷新应用程序,并在登录或注销时保存,这是我的代码

enter image description here

    useEffect(() => {
    const _getUserhData = async () => {
        try {
            let userInfo = await AsyncStorage.getItem('userData');
            if (userInfo) {
                const parsedUserData = JSON.parse(userInfo);
                setUserData(parsedUserData);
                console.log(userData, 'userData');

            }
        } catch (error) {
            console.error('Error retrieving data:', error);
        }
    };

    _getUserhData();
},  [userInfo]);
reactjs react-native react-hooks asyncstorage
1个回答
0
投票

从您分享的内容来看,范围内没有声明

userInfo
,例如React 函数组件主体的范围。

据我所知,您应该删除

userInfo
并使用空依赖项数组,因为
useEffect
钩子回调中没有外部依赖项。

const [userData, setUserData] = React.useState(null);

useEffect(() => {
  const getUserData = async () => {
    try {
      const userInfo = await AsyncStorage.getItem('userData');
      setUserData(JSON.parse(userInfo));
    } catch (error) {
      console.error('Error retrieving data:', error);
    }
  };

  getUserData();
},  []);
© www.soinside.com 2019 - 2024. All rights reserved.