关于 setData 的一个问题
[图片] 如图。 如果我在代码中写 [代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]text: [代码][代码]'init data'[代码][代码],[代码][代码] [代码][代码]array: [{text: [代码][代码]'init data'[代码][代码]}],[代码][代码] [代码][代码]object: {[代码][代码] [代码][代码]text: [代码][代码]'init data'[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]})[代码] 如果调用 [代码]this[代码][代码].setData({[代码][代码] [代码][代码]'array[0].text'[代码][代码]:[代码][代码]'changed data'[代码][代码]})[代码]按照文档所说,此时, this.data.array[0].text 应该会变成 changed data 。 如果我调用 [代码]this[代码][代码].setData({[代码][代码] [代码][代码]'arr[0].text'[代码][代码]:[代码][代码]'changed data'[代码][代码],[代码][代码]})[代码]按照文档所说,此时, this.data.arr[0].text 应该会变成 changed data 。 那如果,我需要 this.data['arr[0].text '] 赋值,应该如何处理? 又或者,这样调用 [代码]this[代码][代码].setData({[代码][代码] [代码][代码]'array[0].text'[代码][代码]:[代码][代码]'changed data'[代码][代码],[代码][代码] [代码][代码]'text'[代码][代码]:[代码][代码]'changed text'[代码][代码]})[代码]这时候,又应该如何进行呢? 选项一:this.data.text === ‘changed text’, this.data.array[0].text === ‘changed data’ 选项二:this.data.text === ‘changed text‘, this.data['array[0].text'] === ‘changed data’ (通过实际代码运行结果,是选项一为答案) 参考 lodash 的做法,是 _.set(obj, path, value) ,确定了一定是切割 path 进行数据创建的,但是只局限于一次进行一个 path 的设置。 疑惑就是这个,希望能解答。 最好就是能把内部实现的 setData 代码贴出来,方便查阅。