reactjs - shouldComponentUpdate 是否会阻止连接的子组件更新

标签 reactjs redux

假设我有一个渲染子项的组件,但这些子项可以通过redux连接或基于计时器的更新组件。父组件不知道这一点。然而,父组件实现了 shouldComponentUpdate 来优化性能。

class Container extends React.Component {
  shouldComponentUpdate(nextProps, nextState) { return shallowCompare(this, nextProps, nextState) } 

  render() {
     return <div>
       <h1>{this.props.title}</h1>
       { children }
     </div>
  }
}

可以说,Clock 是一个 self 更新/连接的组件。在这个星座中:

<Container title="Current Time">
  <Clock/>
</Container>

当其属性由于 redux 状态更改或内部超时(无论其实现方式如何)而发生变化时,Clock 仍会更新,尽管其父组件 title 永远不会改变,因此 componentShouldUpdate 调用返回 false

最佳答案

如果Clock正在从Container接收 Prop ,并且Container由于shouldComponentUpdate而没有更新,则Clock 将不会更新。如果它连接到商店,那么它应该更新,因为它将直接接收 Prop 。

关于reactjs - shouldComponentUpdate 是否会阻止连接的子组件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522416/

相关文章:

javascript - 如何从图书馆访问 redux store?

reactjs - PropTypes React Native 不是一个对象

unit-testing - 使用Sinon、Mocha、Enzyme 和 React 模拟窗口

node.js - 操作/ reducer 没有按预期导致重新渲染

reactjs - 在react上使用redux的原因是什么?

javascript - v6 redux-form,reduxForm() mapDispatchToProps 返回错误

javascript - 从 Webpack DLL 构建中排除模块

javascript - Web应用程序中不同页面的不同背景颜色

reactjs - 在react/redux应用程序中将图像数据存储在哪里更好?

javascript - 我可以将音频/视频对象从 expo-av 传递到 redux 状态吗?