我尝试将 vuejs 对象(对象 A)作为参数传递(到对象 B 中),以便我可以访问所有方法和变量,而无需将它们单独作为参数传递。
所以它看起来像这样:
<!-- In Object A -->
<ObjectB :pass_obj="this"/>
对象B的定义:
<template>
...
</template>
<script>
...
props: {
pass_obj: {
type: Object,
default () {
return {
}
}
}
},
<script>
通过在对象 B 中执行此操作,我可以访问对象 A 的方法。
<!-- in Object B -->
this.pass_obj.foo();
它帮助我更加模块化地构建代码,并且对象 B 可以与它所实现的每个类的相应方法进行交互。
问题是我在浏览器控制台中收到以下警告:
[Vue warn]:属性或方法“__v_isRef”未在实例上定义,但在渲染期间引用。通过初始化该属性,确保该属性在数据选项中或对于基于类的组件是反应性的。请参阅:https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties。
我理解这是因为“this”没有在对象 A 的
data() { return {...} }
中定义。但即使我在那里定义它(这可能是一个可怕的做法):
data() {
return {
this: this
...
}
}
我仍然收到警告。
如何避免收到此警告。也许我应该重新考虑这种方法。预先感谢您的帮助。