如何在创建 React 组件时初始化其 Redux 状态?

5 javascript reactjs react-router react-redux

我有一条路线(使用 React-Router)及其渲染的组件。每次打开此路由并创建其组件时,我都需要重置此组件中使用的 Redux 状态的某些部分(实际上是一个减速器的状态)。该减速器在应用程序的其他部分共享,因此我使用 Redux 状态而不是本地组件的状态。那么如何在每次创建组件时重置减速器的状态呢?我想知道执行此操作的最佳实践。

  • 我想如果我在 componentDidMount 方法中调度操作,之前的状态将会闪烁一秒钟。

  • 我可以在组件的构造函数中调度操作来重置某些减速器的状态吗?

  • 有没有更好的方法?我可以以某种方式在 connect() 函数中设置初始状态,以便组件每次创建时都会重置状态吗?我检查了文档,但找不到对此的任何论据。

HiR*_*enS 1

是的,您可以在构造函数中调度操作来更改减速器状态

constructor(prop){
    super(prop);
    prop.dispatch(action);
}
Run Code Online (Sandbox Code Playgroud)

您可以尝试的另一种方法是设置默认道具,这样您就不需要调用reducer(dispatch action)

ButtonComponent.defaultProps = {
  message: defaultValue,
};
Run Code Online (Sandbox Code Playgroud)