Я новичок в React-Native. Я следую коду из реагирующей навигационной документации , чтобы обработать событие изменения языка. Но после вызова функции setLocale
на this.props.screenProps.setLocale(locale)
на моем экране все state
магазина приложений (redux-store) очищаются, и я не знаю почему? Ниже App.js
type State = {
locale: string,
};
type Props = {};
class App extends React.Component<Props, State> {
constructor(props) {
super(props);
// default i18n.locale = 'en'
this.state = {locale: i18n.locale};
}
setLocale = (locale: string) => {
this.setState({locale});
};
t = (scope: string, options: any) => {
return i18n.t(scope, {locale: this.state.locale, ...options});
};
render() {
const screenProps = {
t: this.t,
locale: this.state.locale,
setLocale: this.setLocale,
};
return (
<Provider store={configureStore()}>
<ThemeProvider>
<AppContainer screenProps={screenProps} />
</ThemeProvider>
</Provider>
);
}
}
export default App;
My configueStore()
export default function configureStore(initialState = {}) {
const sagaMiddleware = createSagaMiddleware();
const composeEnhancers =
typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION__
? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({})
: compose;
const enhancer = composeEnhancers(
applyMiddleware(sagaMiddleware),
);
const store = createStore(rootReducer, enhancer);
sagaMiddleware.run(rootSaga);
return store;
}