如何在reducer中更新状态会触发重新呈现组件?

时间:2017-04-10 08:46:58

标签: reactjs react-redux

我知道mapstatetoprops正在将我们的Redux应用程序状态映射到我们的React组件道具,但我不太清楚当reducer返回一个新状态时幕后发生了什么 - 这是怎么触发一个重新渲染具有映射到应用程序级别状态的props的组件?

在纯React中,setState触发重新渲染是否正确?是不是通过Redux发生了类似的事情(或同样的事情)?

2 个答案:

答案 0 :(得分:1)

ReduxReact-Redux都使用浅等式检查。

特别是:

Redux's combineReducers实用程序会浅显检查由它调用的reducer引起的引用更改。

React-Redux's connect方法生成的组件浅层地检查对根状态的引用更改,以及return values from the mapStateToProps函数以查看包装的组件是否实际需要重新呈现。这种浅层检查要求不变性才能正常运行。

答案 1 :(得分:0)

使用redux“connect”函数创建组件时的重点是,在幕后连接到redux状态,并有一个状态更改的监听器。

因此,您创建了一个从props获取其值的简单组件,但这些道具是使用“mapStateToProps”连接从州获得的。

从未潜入过redux-react连接功能,但如果你想要,你肯定可以继续前进,看看它的作用是什么。

但重点是我上面解释过的。