将“this”作为参数传递vuejs 2

问题描述 投票:0回答:1

我尝试将 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
...
} 
}

我仍然收到警告。

如何避免收到此警告。也许我应该重新考虑这种方法。预先感谢您的帮助。

javascript vuejs2 this warnings
1个回答
0
投票

要从子组件访问父组件实例,可以使用

$parent
属性。作为使用 prop 传递数据的懒惰替代方案,这可能很诱人。

例如,如果您想从子组件访问父组件

foo()
方法,请使用
this.$parent.foo()

© www.soinside.com 2019 - 2024. All rights reserved.