关于react组件渲染两次的问题

可能会有人问,问什么我的组件明明是就让渲染一次,但是实际上却渲染两次呢?其实我也遇到了这个问题,那么下面我提出一种解决这个问题的一种方法。

如果你使用了react-router低于4.x版本中的hashHistory,那么问题就来了,出现这种情况的原因是因为router中进行了一次push和一次pop,所以出现两次渲染,你只需要在shouldComponentUpdate()这个生命周期钩子中做一个判断就好了: return (this.props.router.location.action === 'PUSH')或者 return (this.props.router.location.action === 'POP');只要二选一即可解决渲染两次的问题。

你可能感兴趣的:(react)