gpt4 book ai didi

javascript - 为什么 componentWillUpdate() 和 componentWillMount() 在这些方法中使用 setState 时不会触发渲染功能?

转载 作者:数据小太阳 更新时间:2023-10-29 05:00:57 24 4
gpt4 key购买 nike

我们可以在每个组件生命周期方法中调用 setState()。

为什么我们不在 componentWillUpdate() 和 componentWillMount() 中调用它?

为什么这些方法在将 setState 放入其中时不触发渲染函数?

谁能详细解释一下?

谢谢。

最佳答案

componentWillMount() 中的 setState()

componentWillMount() is invoked immediately before mounting occurs. It is called before render(), therefore setting state in this method will not trigger a re-rendering.

setState()componentWillMount()不会触发重新渲染,但我们从未调用过render()在这一点上呢。因此,在此处设置状态将在我们输入第一个 render() 之前准备状态对象。通过。

实际上,为我们的第一个 render() 准备状态对象, 更好的方法是使用 constructor()而不是调用 setStatecomponentWillMount .

更多阅读:


componentWillUpdate() 中的 setState()

Note that you cannot call this.setState() here. If you need to update state in response to a prop change, use componentWillReceiveProps() instead.

componentWillUpdate()每次需要重新渲染时调用,例如 this.setState() 时叫做。我们不调用 this.setState() 的原因这是该方法触发另一个componentWillUpdate() .如果我们在 componentWillUpdate() 中触发状态变化我们将陷入无限循环。

更多阅读:

关于javascript - 为什么 componentWillUpdate() 和 componentWillMount() 在这些方法中使用 setState 时不会触发渲染功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com