vue要怎么修改循环绑定的值呢?

<div  v-for="point in points"
      :key="point.id">
    <input v-model="point.name"/>
    <input v-model="point.value"/>
</div>

<script>

export default {
    props: {
       points: {
          type: Array
       }
    }
}
</script>

如上图所示,传入points数组,里层一旦修改输入框的值就会报错[vuex] do not mutate vuex store state outside mutation handlers,这是因为props对象是不可修改的,那要怎么改呢?

阅读 1.3k
2 个回答
新手上路,请多包涵

推荐你在组件内部的data函数中创建个变量进行接收props传入的值,记得使用深拷贝,或者对props的数据进行双向绑定,在model函数中进行注册列如

model:{
props:"你得变量名",
event:"change"
}

还需要再methods中进行emit

changevalue(){
this.$emit('change',要更新的值)
}

请参考

1.用computed计算属性的set和get对传入的props做代理
2.用toRef做代理
3.用v-model:xx做双向绑定
4.用defineModel简化defineProps和defineEmit

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题