Данные магазина очищаются после изменения состояния приложения - PullRequest
0 голосов
/ 08 ноября 2019

Я новичок в 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;
}
...