访问$ parent时,类型'Vue'上不存在属性'foo'

时间:2020-06-22 07:38:53

标签: vue.js

我尝试从父组件访问方法,但出现错误“类型'Vue'中不存在属性'blur'”。是否可以通过某种方式转换到特定组件?在我的案例中,父级始终是同一类型的组件。

这是简化的组件:

<script lang="ts">
import Vue from 'vue';

export default Vue.extend({
  methods: {
    click() {
      this.$parent.blur();
    },
  },
});

1 个答案:

答案 0 :(得分:0)

在这里查看:Vue docs

通常,this.$parent被认为是“极端情况”。在大多数情况下,建议您使用prop传递数据。


示例:

子组件想要在父对象上调用blur()方法:

export default {
  methods: {
    click (event) {
      this.$emit('clicked', 'value')
    }
  }
}

父组件获取点击事件并调用blur()方法:

<div>
  <childComponent @clicked="blur"></childComponent>
</div>
export default {
  methods: {
    blur (value) {
      //you can use a `value` from a child component if necessary
      //blur instructions
    }
  }
}