如图,其实是一个循环的表单,其中region-picker是我使用的一个地区选择插件,for-item是通过v-for循环数组中的其中一个数据,现在region-picker有改动,可以通过@onchange来触发change事件接收地区选择子组件传过来的数据,但是取到了数据如何改变对应的数组中数据中的值呢?也就是如何获取数组的index呢?我发现change不可以传参数,传参数的话就会覆盖掉子组件传过来的数据。求大神解答
如图,其实是一个循环的表单,其中region-picker是我使用的一个地区选择插件,for-item是通过v-for循环数组中的其中一个数据,现在region-picker有改动,可以通过@onchange来触发change事件接收地区选择子组件传过来的数据,但是取到了数据如何改变对应的数组中数据中的值呢?也就是如何获取数组的index呢?我发现change不可以传参数,传参数的话就会覆盖掉子组件传过来的数据。求大神解答
既然你已经选择用回调函数参数的形式从组件中回传参数,那么父组件就可以在你代码中的change函数中取到你要回传的参数, 然后对父元素v-for的变量进行赋值:
data: {
vForItems: [], // v-for的变量
},
methods: {
change(val) {
this.vForItems = val
}
}
至于如何获取v-for中的index,一般有 v-for = "(item, index) in vForItems"这种形式获取
小弟愚钝,如有不对之处,欢迎讨论
13 回答12.7k 阅读
7 回答1.9k 阅读
9 回答1.6k 阅读✓ 已解决
6 回答885 阅读
3 回答1.1k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
可以把form-item封装成一个组件,add可以prop过来,change的时候就可以获得add在数组中的index了