Reactjs 反应重新渲染和更新问题 假设我有10k的记录,每当我试图使用setState更新状态时,每次组件都会重新渲染,但我希望在状态组件上的所有更改之后,只渲染一次。 示例:- constructor(){ 这个州={ 员工名单:[{name:a},{name:b},{name:c},{name:d},{name:e}….] } }

Reactjs 反应重新渲染和更新问题 假设我有10k的记录,每当我试图使用setState更新状态时,每次组件都会重新渲染,但我希望在状态组件上的所有更改之后,只渲染一次。 示例:- constructor(){ 这个州={ 员工名单:[{name:a},{name:b},{name:c},{name:d},{name:e}….] } },reactjs,Reactjs,我想使用this.setState()将a、b、c、d、e更新为1、2、3、4、5,但在更新所有值之后,我需要重新渲染组件,而不是在逐个更新之后 请帮帮我 有两种可能的方法: 使用“shouldComponentUpdate”并在其中决定是否渲染 使用纯组件 使用“shouldComponentUpdate” 以下文本是从“”复制的: 默认情况下,shouldComponentUpdate返回true。这就是每次状态发生更改时组件都会呈现的原因。但是,您可以覆盖shouldComponent

我想使用
this.setState()
a、b、c、d、e
更新为
1、2、3、4、5
,但在更新所有值之后,我需要重新渲染组件,而不是在逐个更新之后


请帮帮我

有两种可能的方法:

  • 使用“shouldComponentUpdate”并在其中决定是否渲染
  • 使用纯组件
使用“shouldComponentUpdate” 以下文本是从“”复制的:

默认情况下,shouldComponentUpdate返回true。这就是每次状态发生更改时组件都会呈现的原因。但是,您可以覆盖shouldComponentUpdate以使其具有更多的“智能”如果需要性能提升。您可以告诉React何时不想触发重新渲染,而不是让React一直重新渲染。“

使用纯组件
以下文本从“”复制:“PureComponent更改生命周期方法shouldComponentUpdate,并添加一些逻辑以自动检查组件是否需要重新呈现。这允许PureComponent仅在检测到状态或道具的更改时调用方法呈现。”您需要以不同的方式处理状态更新

您不需要为每个值分别更新状态,而需要像这样更新一次

update() {
   const newValues = [1,2,3,4,5];
   const newEmployeeList = this.state.employeeList.map((obj, index) => {
      return {...obj, name: newValues[index]};
   })
   this.setState({employeeList: newEmployeeList})
}

你是如何使用setstate的?您可以将employeeList从state复制到newEmployeeList变量,更新它,然后在shouldComponentUpdate调用setState中重新设置状态({employeeList:newEmployeeList})。但我尝试使用shouldComponentUpdate,但它也会在每次读取时重新呈现组件。它解释了如何做,并举例说明。