javascript - 如何在vue组件默认prop函数中使用 "this"

标签 javascript vue.js vuejs2 vue-component

export default {
  props: {
    goToSomePage: {
      type: Function,
      default: () => { this.$router.push({ name: 'some-page' }) }
    }
  }
}

我想做这样的事情,但“this”未定义。

有什么办法可以解决这个问题吗?

我想给出一个默认操作并在回调函数中使用“this”。

最佳答案

您可以将箭头函数更改为匿名函数,如下所示

export default {
  props: {
    goToSomePage: {
      type: Function,
      default: function(){ this.$router.push({ name: 'some-page' }) }
    }
  }
}

匿名函数为此使用封闭范围,因此您不必自行绑定(bind)它。这意味着这里的匿名函数将使用与其他选项相同的作用域

关于javascript - 如何在vue组件默认prop函数中使用 "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55587767/

相关文章:

javascript - Vue.js $scopedSlots 不适用于 Vue 实例

javascript - 更改 Angular Material 输入样式

javascript - 如何使用 jquery 隐藏一个模式并显示另一个模式?

javascript - 无法使用 javascript 滚动 ul 列表

javascript - 如何管理 Vue.js 复选框组件上的复杂状态行为?

javascript - 在 VueJS 中保持两个对象数组分开?

由于不安全评估,Vue.js 3 扩展在使用 "vue-cli-service build"时中断

javascript - UI-router 中的 ControllerProvider 导致错误

javascript - 更新数组中的项目会更新所有项目

使用 Vue-router 进行 Firebase 身份验证检查