我在当前正在与我的团队合作的本机应用程序中保留用户数据时遇到问题。我们有一个带有事件列表的应用程序,当您单击一个事件时,它会打开事件详细信息页面并显示一个菜单来选择是/否/可能(出席菜单),用户可以切换以选择他们是否参加正在参加活动。我们的代码如下所示:
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 上运行构建。我们希望用户的选择在页面刷新或应用程序关闭后仍然存在 - 但是这有效,用户选择的选择对于每个事件都保持不变。例如,如果他们为事件 1 选择“可能”,那么我们应用程序中的每个其他事件都会突出显示“可能”选项。
我们有一个获取唯一事件 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句