【发布时间】:2017-10-11 12:26:13
【问题描述】:
我在 Vue 中有一个(父)组件,它带有它自己的屏幕键盘,它位于它自己的 Vue 组件中。键盘跟踪输入的值并将该值传递给父组件。有时父组件需要重新设置值。
目前实现的方式是直接修改传递给键盘的prop。这显然会产生警告Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders.。但是,这正是我在这种情况下所期望的行为:变量是同步的,并且如果父级更改值应该保持同步。换句话说:我想为这个特定的组件禁用这个特定的警告。
我可以向覆盖局部变量的属性添加一个观察器,并使用局部变量来跟踪事物。那是……愚蠢,因为它完全按照现在的方式进行,需要跟踪更多变量。但是,我还没有找到消除警告的方法。有这样的功能吗?
【问题讨论】:
-
您甚至不需要观察者:只需使用计算属性或内部数据存储:stackoverflow.com/questions/39868963/…
-
父母和孩子都需要访问变量,并且除了通过prop/event系统之外,他们不能访问彼此的变量。使用内部数据存储,我猜你的意思是 vuex 的数据存储?这似乎有点矫枉过正,因为我不希望该值持续超出实际显示父项和子项的位置。
-
一种方法可能是将属性作为对象传递,相关信息作为对象的属性。 Vue 不会抱怨,因为您没有改变对对象的引用。
标签: vue.js vuejs2 vue-component