【问题标题】:Will Re-Render occur if state is changed without using seState?如果在不使用 seState 的情况下更改状态,是否会发生 Re-Render?
【发布时间】:2026-01-09 09:50:01
【问题描述】:

我正在尝试如下改变状态,

this.state.page = 0

我没有使用setState,因为我不希望发生重新渲染。但仍在发生重新渲染。据我所知,只有 setState 会导致重新渲染。

如果我错了,请纠正我。还请让我知道如何在状态更改时防止重新渲染。

【问题讨论】:

  • 请用您的代码更新您的问题,以便其他人可以看到并更好地帮助您。
  • 可以使用shouldComponentUpdate生命周期
  • 您不应该以这种方式使用状态。如上所述,您可以使用this.setState({ page: 0 })。然后整合shouldComponentUpdate(nextProps, nextState),如果你的page状态变量有变化,这个函数应该返回false

标签: react-native setstate rerender


【解决方案1】:

给 this.state.param 赋值不会重新渲染屏幕。您需要使用

this.setState({param: val})

【讨论】:

    【解决方案2】:

    您可以为state 赋值的唯一位置是constructor。在任何其他地方您需要使用setState()

    来自react-native 文档:一般情况下,您应该在构造函数中初始化状态,然后在需要更改时调用setState

    所以你不能用赋值来改变它,你必须使用setState

    【讨论】:

      最近更新 更多