有时候我会收到类似这样的错误:
TypeError:this。$ parent.test()不是函数
这是我父母的方法:
test() {
console.log('test')
}
这是孩子:
...
if (this.$parent) {
this.$parent.test()
}
我知道还有另一种方法,但是我想知道的是我是否可以检查该父母是否存在!在vue.js中有可能吗?谢谢
答案 0 :(得分:2)
调用父方法的标准方法是发出事件并在父方法中处理。如果父方法不存在,则将出现模板编译时错误(适合调试)。
在父模板中:
<my-component @myevent="test"></my-component>
子组件:
this.$emit('myevent');
这样做是为了使父级与组件脱钩并允许重复使用。
恕我直言,您应该有充分的理由不这样做,在这种情况下,您的解决方案就可以了。