从存储在异步反应本中的JSON对象返回值



我已经在asyncstorage中存储了一个JSON对象,现在我想检索其值。

在实际代码上,打印的值是[对象对象]。

我想打印嵌套在对象内的JSON值。

有什么提示?

import React, { Component } from 'react';
import {
  Text,
} from 'react-native';
    class Inside extends Component {
        render() {
          async function getItem(item) {
            try {
              const value = await AsyncStorage.getItem(item).then((val) => {
                return JSON.parse(val);
              });
              return value;
            } catch (err) {
              if(err) {
                throw err;
              }
            }
          }
          return (
            <Text>{getItem('userdata').toString()}</Text>
          );
        }
      }
    export default Inside;

如果您有stringify {email {test@test.com'}并使用asyncstorage存储它,则可以解析电子邮件的值:

let value = await getItem('userdata');
return (
        <Text>{JSON.parse(value).email}</Text>
       );

您的班级有一些问题。

理想情况下,您不需要渲染中的功能或直接函数调用(尤其是异步功能)。

正确的方法是创建在渲染之外的异步函数,在constructorcomponentDidMount生命周期期间调用该功能,发送结果以使用SetState更新组件状态,并在渲染中引用该状态。/p>

这将或多或少... React 方式:

class Inside extends Component {
  constructor() {
    super()
    this.state = {
      itemString: "",
    }
    this.item = this.getItem('userdata')
  }
  async getItem(item) {
    try {
      const value = await AsyncStorage.getItem(item).then(val => {
        this.setState({ itemString: val })
        return JSON.parse(val)
      });
      return value
    } catch (err) {
      throw err
    }
  }
  render() {
    return (
      <Text>{this.state.itemString}</Text>
    );
  }
}
export default Inside

相关内容

  • 没有找到相关文章

最新更新