如何从Redux Rehydrate上的服务器获取?

时间:2018-02-06 15:54:17

标签: javascript react-redux redux-persist

我正在使用React / Redux和redux-persist来维护本地存储持久性。当redux-persist完成从本地存储中重新水化商店时,我正在寻求从服务器加载'appSettings.json'。

在persistStore方法中,有一个回调函数可以保证在商店被重新水化之后,但我需要进行服务器调用来获取appSettings.json。

在服务器响应之前,有没有办法可以等待获取?

我需要来自appSettings.json的API网址才能进行API调用,但组件内的调用是在appSettings fetch返回之前发生的。

const persistor = persistStore(store, persistConfig, async () => {

return await fetch('settings.json')
    .then(response => {
        return response.json();
    })
    .then(data => {
        console.log(data);
        store.dispatch({ type: "API_BASE_RESPONSE",  base_api_url: data.baseApiUrl });
    })

});

我尝试了几种不同的等待但没有运气的变化。是否有更好的方法来做我想要实现的目标?

1 个答案:

答案 0 :(得分:0)

通过向reducex-persist的PersistGate添加方法来管理(现在)解决此问题。

private void xgrid_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    Xceed.Wpf.DataGrid.DataRow row = sender as Xceed.Wpf.DataGrid.DataRow;
    xgrid.CurrentItem = row.DataContext;
}