小程序为什么通过setData重新给数组其中一项赋值,其他对象的状态也被修改了?

发布于 6 年前作者 zhangqiang4418 次浏览最后编辑 6 年前来自 ask

partslist是从后台获取的数据,我通过循环partslist.frontpartslist.front里面加了一个type字段,type的格式如第二张图,我想修改front里其中一项的type的choose的值,去判断页面选中不选中的状态,但是为什么front.type里的钣喷的choose都被修改了,我只想修改列表里我点击的其中一个,我的代码写的哪里有问题吗?

3 回复
xiuyinghao
xiuyinghao1 楼6 年前

const { id } = e.currentTarget;

const { front, frontId } = this.data;

const frontType = front[frontId];

const chooseKey = `front[${frontId}].type[${id}].choose`;

that.setData({

  [chooseKey]: !frontType[id].choose

});

这么修改试试

chaozhou
chaozhou2 楼6 年前

this.setData({

    [‘partsList.front[’+i+‘].choose’]:!this.data.partsList.fron[i].choose

})

pingtian
pingtian3 楼4 年前

没看明白