反应不使用对象数组的setState更新状态

时间:2020-04-23 12:24:34

标签: javascript arrays reactjs

我要创建此表,如下图所示。当单击编辑按钮时,应更改为文本字段,然后单击确认按钮,应再次转换为trtd标签。
enter image description here
这是我的相同代码。我创建了对象数组,其中具有id属性,name属性和value属性。单击“编辑”按钮时,应更改为文本字段,单击“确认”按钮,应在对象数组中更新文本字段的值。

#include <stdio.h>

int main(void)
{
    char ch[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int x,y;
    int min,max,i;
    min=max=0;
    i=1;
    for(x=0;x<6;x++)
    {
        for(y=min;y<=max;y++){
            printf("%c",ch[y]);
        }
        min=max+1;
        max+=i+1;
        i++;
        printf("\n");
    }

    return 0;
}

1 个答案:

答案 0 :(得分:1)

您更改了相同的引用,您需要呈现一个副本,否则该组件将无法呈现(浅比较):

const handleRegisterEditBtn = (register) => {
  const data = RegisterData.map((data) =>
    data.id === register.id ? { ...data, isEdit: true } : data
  );
  setRegisterData(datas);
};

或者只是更改为:

setRegisterData([...datas])