我一直在读React文档,发现了shouldComponentUpdate()个.我的理解是,每次调用setState()时,该组件的重新渲染都会更新.

我的问题是,如果要更新的值是SAME作为当前状态值,这会触发重新渲染事件吗?或者,我必须手动判断当前值和shouldComponentUpdate()中要更新的值

推荐答案

官方文件指出:

默认行为是在每次状态更改时重新渲染...

https://reactjs.org/docs/react-component.html#shouldcomponentupdate

这意味着默认情况下,如果组件的stateprops值中的任何一个发生变化,将执行render().

可以使用shouldComponentUpdate()来覆盖此默认行为.下面是一个仅在状态值更改时更新的示例.

shouldComponentUpdate(nextProps, nextState) {
    return this.state.someValue !== nextState.someValue;
}

注意:这个例子完全忽略了props.因此,对props的任何更改都不会触发render().

Reactjs相关问答推荐

在Reaction中更新状态时,我将变得未定义

关于同一位置的不同组件实例的react S规则被视为相同组件

如何使用皮金贴图在Reactjs中制作 map 上的点之间的线的动画?

无法使用Reaction日期选取器和Next.js设置初始日期

如何在MUI x图表条形图上放置圆角?

如何修复ReferenceError:在构建过程中未定义导航器

如何优化 React 应用程序的性能?

React对象值下降2次而不是1次

React - 将一个充满空值的无限大小的数组存储在 ref 中是否可以,或者我应该重置数组吗?

在react 中单击父级中的按钮时如何将数据从子级发送到父级?

onChange in useEffect 的最佳实践

next js 13 在获取中使用标头时动态渲染而不是静态渲染?

useState 在生命周期中的位置

React Router v6 - 访问嵌套路由和处理手写 url 的正确方法

错误:无效挂钩调用.钩子只能在函数组件的主体内部调用.使用 next/router 时

如何修复 Next.js 13 中类型 AppRouterInstance 上不存在 x?

ReactJS:按钮启用禁用更改 colored颜色

React useEffect hooks return () => cleanup() vs return cleanup

链接的音译 Gatsby JS

在 Redux 中更新布尔状态时出错