【问题标题】:AsyncStorage in react nativeReact Native 中的 AsyncStorage
【发布时间】:2018-09-10 19:45:17
【问题描述】:
componentDidMount(){

    console.log("get")
    AsyncStorage.getItem('token')
                    .then((res)=>{
                console.log(res)    
            })

}

我有带有 console.log 和 AsyncStorage.getItem 功能的 componentDidMount。我想在获取令牌值后进行 axios 调用。
但问题是 AsyncStorage.getItem 不起作用 get //console.log('get') 被打印为没有 res 的日志。
任何帮助请如何获得价值?我是不是做错了什么?

【问题讨论】:

  • 我会先在你的 Promise 链中添加一个 .catch() .method 来查看你是否遇到任何错误。
  • @mattdevio 我现在添加了 .catch() 但其中没有打印错误。

标签: react-native asyncstorage


【解决方案1】:

你可以这样做。

componentDidMount(){
    this.onGetToken();
}
onGetToken = async () => {
    try {
      const token = await AsyncStorage.getItem('token');
      console.log("get")
      // call api using axios with token value
    } catch(e => console.info('error for getting token', e))
}

【讨论】:

  • 如果getItem() 方法返回一个promise,那么你的代码和他的代码在行为上是相同的。
  • 这就是我们使用await关键字的原因。
  • 这就是为什么你的代码不能解决他的问题。它的功能相同。
  • 我更新了答案,我认为当前的token值是null或者undefined。
  • 有可能。
【解决方案2】:

尝试重新启动应用程序,asyncStorage 将正常运行。

【讨论】:

    猜你喜欢
    • 2019-11-03
    • 1970-01-01
    • 2019-01-30
    • 2019-01-03
    • 2019-11-23
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多