如上图,key为数组元素单个属性时,元素的index难道只能识别0-9纯数字?伪代码如下:
index=fun(); //比如此时index为点击某item回传的位置
setData({
'array[index].message' : ''
})
这样会报“APP-SERVICE-Engine:Only number 0-9 could inside [ ]……”的错误……
这中常规需求居然不行吗?那setData真的谈不上“非常灵活”啊……只设置0-9的纯数字这个只有过家家写demo的时候才会这样做吧?真实项目中一般都是需要动态设置某个index对应元素的属性啊……难道非得要设置整个列表数据吗?然而你们的setData太多的时候也容易有性能问题啊……
跪求官方大哥或者其它大哥解答,十分感谢 :)
试下这种 ES6 语法呢:
this.setData({
[`array[${index}].message`] :
'your data here...'
,
})
在家睡醒刚看到回复,试了一下,官方大哥果然牛逼,It works !
不过还想请教一下官方大哥一些本质原因,为啥单个属性不用加引号,路径引用需要引号,然后这种情况下需要加方括号……或者可以扔给我一个关键词让我自己去找资料学,刚搜了一下没搜到什么有用的信息……
非常感谢官方大哥的帮助 :)
setData 的时候 key 名虽然可以写成 something[index].message 的形式,但是引用不了 index 这个参数的,需要显式地写为 something[0].message 或 something[1].message。
这里的语法可参考 ES6 模版字符串:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/template_strings
对象初始化:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Object_initializer