微信小程序setdata改变数组中的数据,但for列表渲染内容未发生改变。

img


侧边导航里边,就科技有数据,其他的都没数据,可是当我点击其他的后,控制台已经显示数据undifind了,但是右侧内容依然没有改变

点击前

img

点击后

img

js代码

img

控制台前后数据

img

img

改成这样试试

this.setData({
  cardtj: this.data.list[event.detail].tj ?? [],
  cardgz: this.data.list[event.detail].gz ?? [],
})

setdata里面先给cardtj和cardgz赋空,又设置了this.data.list里面的数据,下覆盖了上面的代码,你可以试试定义在外面,或者用 xxx ?? [] ,
变量定义中类型后带两个问号, 用于判断并赋值,先判断当前变量是否为null,如果左边为null,取所赋值??右边的值。|| 是或的意思有一个满足就可以, &&并且 全部都要满足

试试当 为undefined时设置为空数组

你的setdata里面为什么先给cardtj和cardgz赋空,又设置了this.data.list里面的数据??