为啥 redux 多次初始化

Posted

技术标签:

【中文标题】为啥 redux 多次初始化【英文标题】:Why redux multiple initializing为什么 redux 多次初始化 【发布时间】:2020-03-12 15:41:44 【问题描述】:

Must be like that

But this type going to new redux instance

如果我用超时调用动作也没问题。

  componentDidMount()
    setTimeout(()=>this.props.isLoggedIn(), 100)
  

或者如果我在渲染下调用,就没有问题了。

  render() 
    this.props.isLoggedIn()
    ...
    ...

仅当我在应用加载时调用 componentDidUpdate 下的操作时才会出现此问题。像这样:

  componentDidMount()
    this.props.isLoggedIn() //problem
  

导致拆分redux实例...

【问题讨论】:

【参考方案1】:

好的,我发现了问题。有趣的是我错误地使用了 createStore 函数。

我在 render() 中调用

  render() 
    const store = createStore(reducers, composeWithDevTools(applyMiddleware(ReduxThunk)))
    ...
    ...

现在我移到顶部,问题解决了。

const store = createStore(reducers, , applyMiddleware(ReduxThunk))

export default class App extends React.Component 
  render() 
    return (
      <Provider store=store>
        ...
        ...

【讨论】:

以上是关于为啥 redux 多次初始化的主要内容,如果未能解决你的问题,请参考以下文章

为啥初始状态没有保留在 react-redux 中

为啥每个线程多次初始化惰性变量

为啥我的 Redux reducer 认为我的状态是未定义的?

为啥在初始页面加载时多次调用 React Ref 回调(作为箭头函数或内联函数)?

为啥 Redux-Persist 不持久化存储

React + Redux:为啥在第三次加载时填充道具?