javascript - 有没有办法检查 vue.js 中是否存在 $parent

标签 javascript laravel vue.js

有时我会收到如下错误:

TypeError: this.$parent.test() is not a function

这是我在父级中的方法:

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

这是 child :

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

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

最佳答案

调用父级方法的标准方法是发出事件并在父级中处理该事件。如果父方法不存在,您将遇到模板编译时错误(有利于调试)。

在父模板中:

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

子组件:

this.$emit('myevent');

这样做是为了将父组件与组件分离并实现重用。

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

关于javascript - 有没有办法检查 vue.js 中是否存在 $parent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59029287/

相关文章:

javascript - 无法在函数 Javascript 中传递对象

javascript - 你能在 YUI 数据表的每个单元格中呈现任意 HTML 吗?

javascript - 提交 HTML 表单后显示另一个页面的分区内的内容

php - Laravel Eloquent 联合查询

javascript - 单元测试包含带有插槽的 Vuetify 数据表的 Vue 组件

html - 单击按钮时打开 v-select 选项

javascript - 从片段着色器调用 javascript 函数 (HTML)

php - 何时使用 belongsTo() 以及何时在 laravel 中使用 hasOne()?

php - 光照在哪里?

javascript - 在构造函数 Vue JS 之后推送函数将空对象传递到数组中