我的组件onload中有多个setState。我的页面会在点击下拉列表时重新呈现,因为点按此按钮我会通过setState
存储这些值。
此处停止点击重新渲染,我使用以下代码。
shouldComponentUpdate() {
return false
}
现在由于上述功能,我的值不会在页面加载时存储状态。有什么需要做的吗?
答案 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设计模式的方法,而你应该在大多数情况下都符合要求。