当我使用AsyncStorage.getItem()来检索指定键的值时,它返回一个Promise对象作为String而不是Object

Sha*_*aja 8 promise react-native

存储的反对意见是:

{
 name: 'Chris',
 age: 30,
 traits: {
    hair: 'brown',
    eyes: 'brown'
  },
};
Run Code Online (Sandbox Code Playgroud)

无法检索value.propertyName.

AsyncStorage.getItem('key').then( (value) => console.log('value ', value, 'name is ', value.name));
Run Code Online (Sandbox Code Playgroud)

输出为:value {"name":"Chris","age":30,"traits":{"hair":"brown","eyes":"brown"}}名称未定义.

请告诉我如何从promise对象中检索特定值

zvo*_*ona 11

AsyncStorage仅将数据保存为字符串.您只需JSON.stringify()在保存和JSON.parse()检索时使用.

例如:

AsyncStorage.getItem('key')
.then((value) => {
  const data = JSON.parse(value);
  console.log('name is ', data.name);
});
Run Code Online (Sandbox Code Playgroud)

另一种选择是为AsyncStorage使用某种包装器为你做这件事,比如:https://github.com/jasonmerino/react-native-simple-store