2
我試過AsyncStorage,react-native-store和react-native-simple-store,它們都在模擬器中工作,但不在設備上。我使用了redux和redux-thunk來加載存儲狀態。我調用下面的函數在我的根組件的componentDidMount方法(使用反應母語 - 簡單存儲):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);
});
};
}
然後在我的減速,當用戶觸發更新,我會在返回之前更新存儲狀態像這樣的新狀態:
case SET_UPDATED_DATE:
newState = state.set('updatedDate', action.date);
store.update('state', newState.toJS())
.catch((error) => console.log(error));
return newState;
初始化/更新方法是否不足?是否需要做一些特殊的事情來設置設備?或者在設備上運行時不支持redux-thunk - main.jsbundle或開發服務器 - (在loadState函數的返回函數的頂部放置一條日誌語句,可以讓我相信它在設備上時可能不會被調用)?