反正有检查vue.js中是否存在$ parent

时间:2019-11-25 10:02:05

标签: javascript laravel vue.js

有时候我会收到类似这样的错误:

  

TypeError:this。$ parent.test()不是函数

这是我父母的方法:

test() {
  console.log('test')
}

这是孩子:

...
if (this.$parent) {
  this.$parent.test()
}

我知道还有另一种方法,但是我想知道的是我是否可以检查该父母是否存在!在vue.js中有可能吗?谢谢

1 个答案:

答案 0 :(得分:2)

调用父方法的标准方法是发出事件并在父方法中处理。如果父方法不存在,则将出现模板编译时错误(适合调试)。

在父模板中:

<my-component @myevent="test"></my-component>

子组件:

this.$emit('myevent');

这样做是为了使父级与组件脱钩并允许重复使用。

恕我直言,您应该有充分的理由不这样做,在这种情况下,您的解决方案就可以了。