Jos*_*hua 6 javascript reactjs react-router
我可以通过 调用链接history.push("/path")。要访问history,我必须使用withRouterwhich 将多个道具传递给组件。即使路径没有改变,match经过的withRouter也是不同的。这会导致PureComponent重新渲染。有没有办法解决这个问题?
例子:
class HomeButton extends PureComponent {
onClick = () => {
const { history } = this.props;
history.push("/");
}
render() {
return <Button onClick={this.onClick}/>
}
}
export default withRouter(HomeButton);
Run Code Online (Sandbox Code Playgroud)
我使用了shallowEqualExplain来检查导致更新的道具。
Component如果PureComponent您不想更新,我建议您使用Button.
\n\n\nReact.PureComponent\xe2\x80\x99s shouldComponentUpdate() 仅浅层比较对象。如果它们包含复杂的数据结构,则可能会产生更深层次差异的假阴性。
\n
参考: https: //reactjs.org/docs/react-api.html#reactpurecomponent
\n| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |