本地存储项返回空值

时间:2019-01-17 05:05:49

标签: reactjs local-storage

我正在将令牌存储在本地存储中。问题是我可以通过开发人员工具在浏览器中看到其值,但是当我执行localStorage.getItem('authToken')时,其返回null

我甚至尝试了异步方式,但是它不起作用

Code

    //local-storage.js
    export const loadAuthToken = () => {
        return localStorage.getItem('authToken');
    };

    //auth.js
    const token = localStorage.getItem('authToken');

我应该获得正确的值,但是要为authToken获取空值

1 个答案:

答案 0 :(得分:1)

localStorage.setItem('authToken')localStorage.getItem('authToken')是一项asynchronous任务。 有时您会在let token = localStorage.getItem('authToken')失败之后立即运行setItem,因此会得到null,因此请在延迟一段时间后进行getItem操作。

您可以使用类似这样的内容:

setTimeout(function() {
    let token = localStorage.setItem('authToken');
}, 50);

与从本地存储中获取数据类似,例如

setTimeout(function() {
        let token = localStorage.getItem('authToken');
    }, 50);

或者您可以使用AsyncStorage代替localstorage。 AsyncStorage比本地存储更有前景。

await AsyncStorage.getItem('loginStatus')
      .then(value => this.setState({ loginStatus: value }))
      .catch(e => console.log('err', e));