私はreactx-persistにデータを格納するためにredux-persistを使用しています。 これはコードです:私はApp.jsから派遣し、行動するときReact nativeとreduxは機能しません。
const { persistor, store } = configureStore();
const onBeforeLift =() => {
// take some action before the gate lifts
store.dispatch(startingApp());
}
return (
<Provider store={store}>
<PersistGate
loading={<HomeLoader />}
onBeforeLift={onBeforeLift}
persistor={persistor}>
<RootNav />
</PersistGate>
</Provider>
すべてが正常に動作します:
store.js
import { createStore, compose, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import {
persistStore,
persistCombineReducers,
} from 'redux-persist';
import { AsyncStorage } from 'react-native';
import { composeWithDevTools } from 'redux-devtools-extension';
import user from './reducers/user';
import auth from './reducers/auth';
const config = {
key: 'root',
storage: AsyncStorage,
};
const reducers = persistCombineReducers(config, {
user,
auth
});
export const configureStore =() => {
const store = createStore(
reducers,
compose(
applyMiddleware(thunk),
)
);
const persistor = persistStore(store);
return { persistor, store };
};
はその後App.jsに私はこれを持っていますcomponentDidMount。 問題は、たとえばコンポーネントからアクションを起動すると状態が保存されないため、アプリケーションを再起動すると状態がなくなるということです。私はちょうどアクションを呼び出すと、データを渡しているん何
:
this.props.onSetAuthData(data.credentials);
状態は、私は、コンソールで見ることができるように更新が、私は、唯一の状態のアプリを再起動する場合によって作成されますApp.js内のアクションは保存されています。
これはRootNavコンポーネントと関係がありますか?
おそらく私は間違ったレデューサーを輸出していますか? 私は constユーザー=(状態= initialState、アクション= {})=> {} デフォルトユーザーをエクスポートします。 他のレデューサーと同じです: const auth =(state = initialState、action = {})=> {} デフォルトの認証をエクスポートします。
その後、私は combineReducers({認証、ユーザー})
でエクスポートするには、この間違ってますか?
私はstore.dispatchを除去するのでそれは、全く永続化されていないことを見出した(startingApp())。今は何も永続している、私が間違っていることを理解できない。どんな助け? –
私は減速機を間違って輸出しているようです。 –