React.js组件重新渲染

时间:2018-06-23 06:09:51

标签: javascript reactjs ecmascript-5

除了this.setStatethis.forceUpdate方法之外,还有其他方法或事件会触发组件从自身内部重新渲染吗?

我是从react-redux的角度提出这个问题的,我称之为“ this.forceUpdate”。我还读到React.js不鼓励使用此方法。这就是为什么我感到好奇。我希望我不会被我的信息来源误解或误导。

2 个答案:

答案 0 :(得分:1)

const mapStateToProps = state => {
  return {
    objects: state.objectIds.map(id => state.objects[id])
  }
}


通过此方法进行连接时,

export default connect(
  mapStateToProps,
  mapDispatchToProps
)(TodoList)`



redux将提供新的道具,必须在“组件将接收新的道具”中捕获它,然后进一步调用render方法。

答案 1 :(得分:0)

您可以使用shouldComponentUpdate生命周期方法来实现:

shouldComponentUpdate(nextProps, nextState){

    //Compare the nextProps and nextState with current props or state respectively if it matters,then :
    //If returned true, the component will re-render if it's false there will 
    //be no change

    return true;  

}