首页 > 解决方案 > 如果从发射触发,Vue 方法会丢失“this”?

问题描述

我正在使用最新的 Vue 3。

外模板:

<base-table @row-click="routeToEdit" ...>
  ... slots
</base-table>

我的div上的内部BaseTable组件:tr

<div @click="triggerRowClick(item)">...</div>

在方法中BaseTable

  methods: {
    triggerRowClick(item) {
      this.$emit('row-click', { item });
    },
  },

并在我的外部模板中退出......this未定义,我无权访问$router或其他任何东西:(

  methods: {
    routeToEdit: ({ item }) => {
      // this.$router.push('room_edit', { params: { room_id: item.id } });
      console.log(item);
    },
  },

标签: vue.jsvuejs2vue-component

解决方案


推荐阅读