AsyncStorage に関するドキュメント サンプルに従いました。
React Native - AsyncStorage ドキュメント
. だから、私は自分のコードを実装しました:
var STORAGE_KEY = '@AsyncStorageExample:key';
そして、私はこの関数でクラスを定義します:
私は初期状態を持っています:
state={
defineValor: 0,
};
componentDidMount
関数と_loadInitialState
:
componentDidMount() {
this._loadInitialState().done();
};
_loadInitialState = async () => {
try {
var value = await AsyncStorage.getItem(STORAGE_KEY);
if (value !== null){
this.setState({defineValor: value});
alert('Recovered selection from disk: ' + value);
} else {
alert('Initialized with no selection on disk.');
}
} catch (error) {
alert('AsyncStorage error: ' + error.message);
}
};
そこで、AsyncStorage とドキュメントで状態を変更する関数を作成しました。
changeState = () => {
this.setState ({
defineValor: 1
});
try {
AsyncStorage.setItem(STORAGE_KEY, this.state.defineValor);
alert('Saved selection to disk: ' + this.state.defineValor);
} catch (error) {
alert('AsyncStorage error: ' + error.message);
}
};
したがって、アプリを開くと、すべてのプロセスが実行され、「ディスク上に選択なしで初期化されました」というアラートが表示され、関数changeState
を呼び出すと、「ディスクに選択が保存されました: 1」というアラートが表示されます。しかし、アプリを閉じて再度開くと、状態が保存されず、「ディスク上で選択されていない状態で初期化されました。」というアラートが表示されます。私は何を間違っていますか?