reactx-native 앱에 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>
모든 것이 잘 작동 :
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 내가이이
store.js : 이 코드입니다 componentDidMount. 문제는 구성 요소에서 작업을 실행하면 상태가 저장되지 않기 때문에 응용 프로그램을 다시 시작하면 상태가 사라집니다. 나는 단지 액션을 호출하고 데이터를 전달한다 무엇
:
this.props.onSetAuthData(data.credentials);
상태는 내가 콘솔에서 볼 수있는 업데이트,하지만 난 단지 상태 응용 프로그램을 다시 시작하면 의해 생성된다 App.js의 동작이 저장되지 않습니다.
아마도 RootNav 구성 요소와 관련이 있습니까?
어쩌면 나는 reducers를 잘못 내보내고 있습니까? 나는 const user = (state = initialState, action = {}) => {} 기본 사용자를 내 보냅니다. 다른 감속기와 같습니다. const auth = (state = initialState, action = {}) => {} 기본 인증을 내 보냅니다.
가 그럼 난 combineReducers와 수출 ({인증, 사용자})
이 잘못인가?
나는 내가 store.dispatch을 제거하기 때문에 즉, 모든 지속되지를 발견 (startingApp()); 이제는 아무 것도 지속되지 않고 내가 뭘 잘못하고 있는지 이해할 수 없습니다. 어떤 도움이 필요합니까? –
내가 감속기를 잘못 내보내고있는 것 같습니다. –