是否可以在Redux中的Provider上下文之外更新商店?

时间:2019-06-24 20:38:55

标签: reactjs redux react-redux redux-saga

我有一些要设置的配置设置,并在加载主应用程序之前保存到Redux存储。这样,所有子组件都已经预先加载了配置数据,并且他们可以使用redux-connect从存储中读取配置数据。

目前,我只知道如何使用和更新存储在Provider上下文中的已连接组件中的商店。

是否可以在此之外进行更新?

例如:

class App extends React {
   constructor(props) {
      super(props);
      // UPDATE REDUX STORE HERE
   }

   componentDidUpdate() {
      // OR UPDATE REDUX STORE HERE
   }

   render() {
       return (
           <Provider store={store}>
              <Child />
           </Provider>
       );
   }
 }

这有可能吗?

2 个答案:

答案 0 :(得分:2)

store只是一个包含dispatchgetState函数的对象。这意味着只要在应用程序外部可以访问商店的地方,您都可以使用这些属性对其进行操作。

const store = configureStore();

const App = () => (<Provider store={store} />);

store.dispatch({ type: SOME_ACTION_TYPE });

答案 1 :(得分:0)

您可以在App的{​​{1}}组件之外调用提供程序

index.js

现在在您的App类中可以添加ReactDOM.render( <Provider store={store}> <App/> </Provider> , document.getElementById('root')); connect

updateAction