我知道您可以使用shouldComponentUpdate
来决定是否应该调用render。引用文档:
默认情况下,
shouldComponentUpdate
始终返回true以防止 当状态发生变异时会出现微妙的错误,但是如果你小心的话 总是将状态视为不可变状态,只能从道具和状态中读取 在render()中,您可以使用a覆盖shouldComponentUpdate
将旧道具和状态与他们的状态进行比较的实现 替代品。
但我的麻烦有点不同。我在componentDidUpdate
中计算一个值,因为需要第一次渲染才能进行计算,并且我希望将此值存储在状态中,以便稍后在{{{ 1}}函数,但我不想在修改它时触发渲染。
你会怎么做?这是正确的方法吗?
我应该将此值存储在其他地方吗?直接在render
?
答案 0 :(得分:3)
在组件实际更新之前计算您的状态。
componentWillUpdate(nextProps, nextState) {
nextState.value = nextProps.a + nextProps.b;
}
您的组件将通过其他更改获得计算值,并且只会更新一次。