私はAsyncStorage、react-native-store、react-native-simple-storeを試しましたが、それらはシミュレータでは動作しますが、デバイスでは動作しません。私はreduxとredux-thunkを使用して格納された状態をロードしています。React Native:ストレージはシミュレータでのみ動作します
export function loadState() {
return (dispatch, getState) => {
store.get('state').then((state) => {
if (state) {
let action = {
type: LOAD_STATE,
state: fromJS(state),
};
dispatch(action);
} else {
store.save('state', initialState);
}
}).catch((error) => {
console.log(error);
});
};
}
、ユーザーが更新をトリガーするときに、私の減速に私が戻る前に、ストレージ内の状態を更新します:私は(反応するネイティブ・シンプル・ストアを使用して)私のルートコンポーネントのcomponentDidMountメソッドに次の関数を呼び出します
case SET_UPDATED_DATE:
newState = state.set('updatedDate', action.date);
store.update('state', newState.toJS())
.catch((error) => console.log(error));
return newState;
初期化/更新の方法は不十分ですか?デバイスのために特別な設定を行う必要がありますか?または、デバイスmain.jsbundleまたは開発サーバー上で実行されている場合、redux-thunkはサポートされていません(loadState関数の返された関数の上部にログステートメントを置くと、デバイス上で呼び出されていない可能性があります)?