Redux connect和mapStateToProps

时间:2017-02-24 16:22:29

标签: javascript reactjs redux

我正在尝试理解redux'connect如何工作我想知道它是否:

  1. 每次状态随新道具变化时都会创建一个新组件 或
  2. 更新现有组件的状态
  3. 如果是后者,这不符合React的不可变道具的哲学吗? 它如何更新道具?

1 个答案:

答案 0 :(得分:4)

React的不可变道具哲学意味着你不应该从组件内部更新道具。您可以将新属性值传递给父组件中的组件。这就是存在componentWillReceiveProps方法的原因。

反应组件基本上接收道具并呈现HTML。组件可以使用本地状态,但如果使用Redux,则通常不需要。 Redux管理单个状态对象中的所有状态,并使用connect方法连接'全局Redux状态的一部分到反应组件。然后它将作为该组件内的道具提供。

所以回答你的问题:答案1和2都不正确。 当使用connect将一段状态连接到你的组件时,它会将该状态作为props传递。你的组件将没有状态(除非你编写自己的本地状态),只有道具。如果redux状态的相应部分发生变化,这些道具会更新。