vue 子组件修改父组件的值

父组件有个一数组 结构如下

     data = [
             {xx:xx},
             {xx:xx}......
     ]

我将data里面的对象传给了子组件,子组件想要修改这个对象的值,怎么才能使父组件的值刷新,

而且根据vue文档说的
clipboard.png
我直接在子组件里修改这个对象,父组件应该是会发生变化的,但是却毫无反应。

ps: 使用了$emit 这个方法,可以做到,但是因为某些原因,$emit 对于我来说不是最好的方案。

请哪位大神指点下。

阅读 7.4k
4 个回答

1.首先修改这个对象的值肯定是在父组件里修改
2.父组件里提供修改这个对象的方法,通过props传递给子组件
3.子组件里需要修改的时候调用props上传入的方法

最好是使用$emit通过传递事件的方式来改值,否则容易在项目中后期给debug带来麻烦..

在子组件里修改props里的值的确会直接修改到父组件传递的值。不知道题主传递的值定义的是在data里,还是在哪里?

首先,这种子组件改变父组件状态的事少做,如果有引入vuex的最好通过vuex来控制,实在要修改,可以参照上面的回答,另外提供一个思路,就是用bus中转,也就是迷你的vuex

自己不够细心,传递的对象错了,因为props是对象,所以我是通过直接通过子组件直接修改的,父组件的状态相应的发生改变了。

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