带有Asyncstorage的React Hook useState构造函数

时间:2019-09-17 04:15:12

标签: reactjs

我正在尝试使用asyncstorage设置初始状态。有办法吗?

const _retrieveUser = async () => {
  return await AsyncStorage.getItem('authUser');
}

const [user, setUser] = useState(_retrieveUser().then(user => user) || null);

2 个答案:

答案 0 :(得分:1)

初始值必须是同步可用的值。然后,您可以在效果上完成异步工作。如有必要,您可以在进行此工作时渲染占位符

B

答案 1 :(得分:0)

您可以在 useState 方法中传递一个函数来以另一种简单的方式管理初始状态:

const [user, setUser] = useState(async () => {
        const data = await AsyncStorage.getItem('authUser') //get data and store them in constat
        setUser(data || null) //here the state set self
      }
    );