react更新二维数组 视图不更新

#1

点击一个按钮传值

handleClick = item => {
        this.setState({
            arr: item,
        });
    };

视图循环显示:

{arr.map((item, i) => (
 <Group
         key={item}
         group={item}
         index={i}
          onChange={this.handleChange}
     />
  ))}

react更新二维数组 视图不更新

arr:[
[{id:1},{id:2}],
[{id:11},{id:22}]
]

如果前后两个数据的长度是一样的,视图不会更新,但是数据已经更新啦
前后两次数据的长度不一样,则可以更改视图。
请教大神

1 Like
#2

在setSate的时候可以尝试处理一下item ,参考如下代码
this.setState({
arr: […item],
});

#3

我就是这样复制的,但是还是不起作用,我在点击按钮更新arr数组后,render时还能打印出来呢。但是视图就是不更新,更新的时候只有两个数组长度不一样时才更新视图,两个数组长度一样的话不更新。

#4

换一种 深copy的方法。再试试 JSON.stringfy()

#5

image
我都这样写了,还是不行
按钮点击的时候触发这个方法

#6

我找到原因啦,我循环中使用的key,出现了重复的情况,所以视图没有更新,还是谢谢你给我的解答。