AsyncStorage - 错误(React Native)

AsyncStorage - error (React Native)

我在当前与我的团队合作的反应本机应用程序中保存用户数据时遇到问题。我们有一个带有事件列表的应用程序,当您单击一个事件时,它会打开事件详细信息页面并显示一个菜单以选择 yes/no/maybe(出席菜单),用户可以切换到 select他们是否参加活动。我们的代码如下所示:

import React from 'react';
import { AsyncStorage, Text, View, StyleSheet, Picker } from 'react-native';

export class PickerMenu extends React.Component {
    state = { choice: '' }

   componentDidMount = () => AsyncStorage.getItem('choice').then((value) => this.setState({ 'choice': value }))

   setName = (value) => {
     AsyncStorage.setItem('choice', value);
     this.setState({ 'choice': value });
   }
   render() {
     return (
       <View>
         <Picker selectedValue = {this.state.choice} onValueChange = {this.setName} itemStyle = {styles.item}>
           <Picker.Item label = "Yes" value = "yes" />
           <Picker.Item label = "Maybe" value = "maybe" />
           <Picker.Item label = "No" value = "no" />
         </Picker>
       </View>
     );
   }
}

我们是 运行 Xcode 的基础。我们希望用户的选择在页面刷新或应用程序关闭后仍然存在 - 但是,这有效,用户 selected 的选择对于每个事件都保持不变。例如。如果他们 select 'Maybe' 用于事件 1,则 selection 'maybe' 会针对我们应用中的所有其他事件突出显示。

我们有一个想法获取唯一的事件 ID 并将其实现到 AsyncStorage 函数中,但我们不确定如何执行此操作。

非常感谢任何帮助 - 谢谢!

在这种情况下,您需要使用 async/await 来存储在异步存储 像这样:

setName = async (value) => {
   await AsyncStorage.setItem('choice', value);
   this.setState({ 'choice': value });
}

希望我帮到你了!

一些对您有用的链接:

https://facebook.github.io/react-native/docs/asyncstorage.html