this.setData 怎么给对象动态赋值
发布于 6 年前 作者 sunxiulan 13000 次浏览 来自 问答

data:{

    array: [{text: 'init data'}]

}, 


this.setData({ 

'array[0].text':'changed data'

})

如果里面的 0 变成index变量  需要怎么解决 

或者能提供别的解决方法?

8 回复

1楼的做法只是赋值啊  没法更新到视图上啊, 难道要从新全部赋值一次?

@暨灿 非常谢谢

_this.setData({ [`[${_this.data.zhiduarr[_id].zhiduStatus}]`]: ‘weixiazai’ })

这样之后提示:Path can not start with []:

我的还是不行。。。求大佬帮助

1.这是我的数据结构

2.赋值语句

3.打印结果

通过 ES6 的 模板字符串 和 属性名表达式,注意在项目配置里面开启ES6 转 ES5。

let index = 0

this.setData({

  [`array[${index}].text`] : ‘changed data’

})

4楼简直太强了

4楼正解,模板字符串+属性名表达式,好用。

this.data.array[0].text = “changed data”

回到顶部