如何在React Native中从异步源设置初始Redux状态?

时间:2020-07-14 07:27:22

标签: reactjs react-native redux react-redux

当存储首次初始化时,我试图从异步存储中加载所有类似用户对象的异步数据。但是我不知道该怎么做。我得到了创建一个中间件来执行此操作的建议之一,但我不知道如何做。

当前商店及其在应用中的初始化

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 :(得分:0)

您不需要全局默认状态,因为reduces在redux上已经具有默认状态参数

例如

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

您的状态

{
   someReducer: { foo: 'bar' }
}

答案 1 :(得分:0)

我不确定在React Native上设置redux的方法,因为我只使用React.js,但是如果您要设置商店来处理异步调用处理程序,那么最好的选择就是研究中间件。

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

这是一个很好的例子,说明如何使用中间件和redux-thunk调用异步请求 https://redux.js.org/advanced/async-actions

在示例的最后,它显示了如何使用redux-thunk通过异步API调用来初始化商店。