に反応:AsyncStorageは変化状態を保存しない - 私はAsyncStorageについてのドキュメントのサンプルに続くネイティブ
React Native - AsyncStorage docs
を。
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"です。しかし、私がアプリケーションを閉じて再び開くと、状態は保存されず、「ディスク上の選択なしで初期化されました」という警告が表示されます。私は間違って何をしていますか?
値としてのみ文字列を受け付けます。 setStateにはそのコールバックでAsyncStorage setItemを実行するコールバック関数があります。 – Hariks