我大概简化一下我的业务,用通俗点语言去描述:
业务:“今天去哪”
后端取回数据:
[{省份:广东,城市:深圳},{省份:广东,城市:广州}...]
在前端需要这样去显示页面:
以省份为大标签(或者说叫一级),下面包着各种城市
那么处理过后就是
{广东:{
城市列表:[{城市:广州,去不去:false},...],
其他数据:...
},
.....
}
那么我想修改的值其实是 “去不去” 这一项数据(它其实被checkbox绑定着)
但是遇到了问题,
无论是 vm.set 还是直接修改,
我都无法触发页面的更新
附上操作代码
//index请想象成省份,indexs想象为城市,chose想象为去不去
this.$set(this.feeList[index].data[indexs],
'chose',
!this.feeList[index].data[indexs].chose)
在data的声明里我只能把 feeList 声明为一个空对象
请问有没有什么方法可以在我修改 最底层的 chose 的时候触发页面更新?
最后附上HTML代码
<div v-for="(item,key) in feeList" :key="key">
<div>
<div>{{item.省份名}}</div>
</div>
<div>
<div>城市</div>
<div>出行费用</div>
</div>
<div
v-for="(items,keys) in item.城市列表" :key="keys"
@click="触发改变的方法"
>
<div v-show="item.是否选择此省份" @click="展示用的方法">
<cube-checkbox v-model="items.去不去">{{items.去不去}}</cube-checkbox>
</div>
</div>
补充一下,items.去不去 会在 item.是否选中此省份 发生变化的时候更新状态
11:40补充:
严格意义上来说我这个更像是深度跟踪(应该是这么叫)的问题不是多维数组...不过某种意义上是差不多的
可以这样做: