更新 reducer 中的状态如何触发组件的重新渲染?
How does updating the state in a reducer trigger a re-render of the component(s)?
我知道 mapstatetoprops 正在将我们的 Redux 应用程序状态映射到我们的 React 组件 props,但我不太明白当 reducer returns 一个新状态时幕后发生了什么 - 那是如何触发重新渲染具有映射到应用程序级别状态的道具的组件?
在纯 React 中,setState 触发重新渲染正确吗?是否通过 Redux 发生了类似(或相同)的事情?
当你使用 redux "connect" 函数创建组件时,重点是在幕后你连接到 redux 状态,并有一个状态变化的监听器。
所以你创建了一个简单的组件,从 props 中获取他的值,但是这些 props 是使用 "mapStateToProps".
连接从状态中获取的
从未深入研究 redux-react connect 函数,但如果你愿意,你一定可以继续看看它到底做了什么。
不过重点是我上面解释的。
Redux
和 React-Redux
都使用浅层相等检查。
特别是:
Redux's combineReducers
实用程序浅层检查由它调用的 reducer 引起的引用更改。
React-Redux's connect
方法生成的组件会浅层检查对根状态的引用更改,而 return values from the mapStateToProps
函数会查看包装的组件是否真的需要重新渲染。这种浅层检查需要不变性才能正常运行。
我知道 mapstatetoprops 正在将我们的 Redux 应用程序状态映射到我们的 React 组件 props,但我不太明白当 reducer returns 一个新状态时幕后发生了什么 - 那是如何触发重新渲染具有映射到应用程序级别状态的道具的组件?
在纯 React 中,setState 触发重新渲染正确吗?是否通过 Redux 发生了类似(或相同)的事情?
当你使用 redux "connect" 函数创建组件时,重点是在幕后你连接到 redux 状态,并有一个状态变化的监听器。
所以你创建了一个简单的组件,从 props 中获取他的值,但是这些 props 是使用 "mapStateToProps".
连接从状态中获取的从未深入研究 redux-react connect 函数,但如果你愿意,你一定可以继续看看它到底做了什么。
不过重点是我上面解释的。
Redux
和 React-Redux
都使用浅层相等检查。
特别是:
Redux's combineReducers
实用程序浅层检查由它调用的 reducer 引起的引用更改。
React-Redux's connect
方法生成的组件会浅层检查对根状态的引用更改,而 return values from the mapStateToProps
函数会查看包装的组件是否真的需要重新渲染。这种浅层检查需要不变性才能正常运行。