Reactjs:使用shouldComponentUpdate()

时间:2017-06-13 12:21:36

标签: reactjs

我的组件onload中有多个setState。我的页面会在点击下拉列表时重新呈现,因为点按此按钮我会通过setState存储这些值。

此处停止点击重新渲染,我使用以下代码。

shouldComponentUpdate() {
    return false
}

现在由于上述功能,我的值不会在页面加载时存储状态。有什么需要做的吗?

3 个答案:

答案 0 :(得分:5)

您声明组件中没有显示更改,因为它根本没有重新编译,因为您已从false方法返回shouldComponentUpdate

如果您想限制特定状态更改的呈现,那么只需检查该状态并返回false,否则返回true,如

shouldComponentUpdate(nextProps, nextState) {
     if(this.state.dropdownVal != nextState.dropdownval) {
          return false
     }
     return true
}

然而,重新呈现并不是一件坏事,因为React渲染过程非常有效,而且您希望更频繁地在DOM中显示更新状态。

答案 1 :(得分:0)

您必须使用shouldComponentUpdate()之类的

  shouldComponentUpdate(nextProps, nextState) {
    return !Immutable.is(this.state.synergy, nextState.synergy)
 }

答案 2 :(得分:0)

答案:你需要重新渲染。这没什么不对的。但是,如果你的渲染语句内置了很多逻辑(你不应该这样做,逻辑应该在你的容器中发生),这可能很麻烦。有效地使用元素键,重新渲染没有任何问题。你正在寻找一种颠覆React设计模式的方法,而你应该在大多数情况下都符合要求。