【问题标题】:Local storage item returns null value本地存储项返回空值
【发布时间】:2019-06-11 06:21:28
【问题描述】:

我将令牌存储在本地存储中。问题是我通过开发者工具在浏览器中看到了它的价值,但是当我做 localStorage.getItem('authToken') 它返回 null

我什至尝试过异步方式,但它不起作用

Code

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

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

我应该得到正确的值。但是却得到了 authToken 的空值

【问题讨论】:

  • localStorage.getItem('token')localStorage.getItem('authToken') 是另一回事。您在开发者工具中看到了什么?
  • 抱歉打错了。我的意思是 localStorage.getItem('authToken')

标签: reactjs local-storage


【解决方案1】:

localStorage.setItem('authToken')localStorage.getItem('authToken')asynchronous 任务。 有时你在setItem 会失败之后运行let token = localStorage.getItem('authToken'),所以你得到一个空值,所以请延迟一段时间后再运行getItem

你可以使用这样的东西:

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

从本地存储中获取数据也一样

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

或者您可以使用AsyncStorage 代替localstorage。 AsyncStorage 比 localstorage 更有前途。

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

【讨论】:

  • 你能分享一下代码吗?实际上这是完美的我什至在我的代码中使用它并且它工作正常。
  • 一个疑问,我应该在 auth.js 还是 local-storage.js 中添加这个
猜你喜欢
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 2019-02-05
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
相关资源
最近更新 更多