【发布时间】:2018-12-01 10:02:22
【问题描述】:
有一种场景是父组件发送imgkeyprops给子组件。当子组件加载该图像时,它可以更改img并通过回调更改其状态返回父组件。
现在父组件具有其他功能,当其他功能使状态发生变化时,每次都会加载子组件(图像)。如何防止在相同的 imgkey 道具上重新加载?
总体而言,当父级发送与之前发送相同的道具 imgkey 时,子级不应重新加载
【问题讨论】:
-
@Hamms 但这将适用于整个父组件而不是子组件
-
具体来说,为孩子定义
shouldComponentUpdate -
我可能在这里遗漏了一些东西,但可以通过让您的子组件扩展自
PureComponent而不是Component(更多关于 PureComponent here)来解决这个问题。只要您避免直接更改状态和道具中的对象(无论如何都应该这样做),PureComponent通常会防止不必要的重新渲染而不会产生任何负面影响。 -
刚刚重新阅读问题并意识到父组件可能也需要是
PureComponent,或者如果这不起作用,那么您需要手动实现shouldComponentUpdate其他人提出了建议。
标签: javascript reactjs