私は現在、私のチームで作業している反応ネイティブアプリケーションでユーザーのデータを保持することに問題があります。私たちはイベントのリストを持つアプリケーションを持っています。イベントをクリックすると、イベントの詳細ページが開き、ユーザーがyes/no/maybe(出席メニュー)を選択するメニューが表示されます。出席しています。コードは次のようになります。AsyncStorage - error(React Native)
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関数に実装するというアイディアがありましたが、これを行う方法はわかりません。
ご協力いただければ幸いです。ありがとうございます!私が助けた
setName = async (value) => {
await AsyncStorage.setItem('choice', value);
this.setState({ 'choice': value });
}
希望:あなたは/このような非同期ストレージ で保存するために待って非同期を使用する必要がある。この場合
AsyncStorageあなたは多少のような AsyncStorage.setItem( 'をEVENT_ID'、)のハックを置くことができるキーの値であるので、 –
あなたはすでにそれを理解したような音!特定のキーでsetItemを設定するだけで、onDidMountは特定の選択肢のみを状態に割り当て、他のすべての選択肢は空のままにします。 –
人の頭に感謝します - これらを調べます – Saf