如何忽略ReactJs中状态的属性更新?

时间:2016-04-27 11:25:24

标签: reactjs

我知道您可以使用shouldComponentUpdate来决定是否应该调用render。引用文档:

  

默认情况下,shouldComponentUpdate始终返回true以防止   当状态发生变异时会出现微妙的错误,但是如果你小心的话   总是将状态视为不可变状态,只能从道具和状态中读取   在render()中,您可以使用a覆盖shouldComponentUpdate   将旧道具和状态与他们的状态进行比较的实现   替代品。

但我的麻烦有点不同。我在componentDidUpdate中计算一个值,因为需要第一次渲染才能进行计算,并且我希望将此值存储在状态中,以便稍后在{{{ 1}}函数,但我不想在修改它时触发渲染。

你会怎么做?这是正确的方法吗? 我应该将此值存储在其他地方吗?直接在render

1 个答案:

答案 0 :(得分:3)

在组件实际更新之前计算您的状态。

componentWillUpdate(nextProps, nextState) {
  nextState.value = nextProps.a + nextProps.b;
}

您的组件将通过其他更改获得计算值,并且只会更新一次。