我可以通过history.push("/path")调用链接。要访问history,我必须使用withRouter,它将多个 Prop 传递给组件。即使路径不变,由match传递的withRouter也有所不同。这将导致PureComponent重新呈现。有办法解决这个问题吗?

例子:

class HomeButton extends PureComponent {
  onClick = () => {
    const { history } = this.props;
    history.push("/");
  }

  render() {
    return <Button onClick={this.onClick}/>
  }
}

export default withRouter(HomeButton);

我使用shallowEqualExplain来检查导致更新的 Prop 。

最佳答案

如果您不想更新Component,我建议使用PureComponent而不是Button



引用:https://reactjs.org/docs/react-api.html#reactpurecomponent

关于javascript - 如何防止withRouter导致重新渲染PureComponent?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51649171/

10-09 15:00