Как установить начальное состояние редукции из асинхронного источника в react native? - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь загрузить все асинхронные данные, такие как пользовательские объекты, из асинхронного хранилища при первой инициализации хранилища. Но я понятия не имею, как это сделать. У меня есть одно из предложений по созданию промежуточного программного обеспечения для этого, но я не знаю, как это сделать.

Текущее хранилище и его инициализация в приложении

const store = createStore(rootReducer, {}, applyMiddleware(ReduxThunk, 
    //actionCallbackOnceMiddleware(INITIAL_AJAX_END, AppSafeAreaProvider)
    ))

const AppSafeAreaProvider = () => {
    return <Provider store={store}>
            <PaperProvider>
                <SafeAreaProvider>
                        <App />
                </SafeAreaProvider>
            </PaperProvider>
        </Provider>
}

AppRegistry.registerComponent(appName, () => AppSafeAreaProvider);

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Я не уверен насчет метода настройки redux в React Native, поскольку я использую только React. js, но если вы собираетесь настроить свой магазин для обработки асинхронных обработчиков вызовов, лучше всего будет изучить промежуточное ПО.

https://redux.js.org/api/applymiddleware

Вот отличный пример того, как запросы asyn c могут вызываться с помощью промежуточного программного обеспечения и redux-thunk https://redux.js.org/advanced/async-actions

В конце примера показано, как redux-thunk можно использовать для инициализации вашего магазина с помощью вызова API asyn c.

0 голосов
/ 14 июля 2020

Вам не нужно состояние по умолчанию глобально, потому что редукторы уже имеют параметр состояния по умолчанию на redux

Например

const someReducer = (defaultState = {foo: 'bar'}, action) => {
  switch(action.parameter)
  {
    ...
    default return defaultState
  }
}

Ваше состояние

{
   someReducer: { foo: 'bar' }
}
...