typescript - 错误: [Vue warn]: Invalid handler for event "click": got undefined

标签 typescript vue.js vuejs2 tsx vue-mixin

我正在使用 Vue 2(类语法)和 Typescript(TSX 语法),我知道这个问题已被问过几次,但我看到的答案都不适用于我自己的情况。

我创建了一个对象数组,并将这些对象作为自定义 HTML 元素输出,我们将它们称为 ChipsChip 将属性“selected”作为 boolean

该数组称为registerCategory,数组中的每个对象都有一个名称(基本上只是其文本)和一个 bool 值,我称为is_selected,默认值为 false

好吧,这就是我输出数组的方式

  {this.registerCategory.map((field, index) => (
    <ZChip
    position={'start'}
    id = {'field-' + index}
    value={field}
    selected={this.registerCategory[index].is_selected}
    onClick={this.onCategorySelect(index)}
    >
      {this.$t(this.registerCategory[index].name)}
    </ZChip>
  ))}

这会完美地输出所有元素。我现在的问题是让它们在点击时被选择。

我在单独的 registration.mixin.ts 文件中创建了此函数(这也是在 compulated block 中定义数组的同一位置):

  methods: {
    onCategorySelect(index: number): void {
      this.registerCategory[index].is_selected = true;
    },
}

这应该将 is_select 更改为仅选定元素的选定 boolean。然而,这给了我:

[Vue warn]: Invalid handler for event "click": got undefined

非常感谢任何帮助、解决方案或解决方法。谢谢。 :)

最佳答案

你已经弄清楚了吗?我无法测试它,但我很确定这是有效的,它与 React 中处理索引的方式相匹配(据我所知):

  methods: {
    onCategorySelect(index: number): void {
      () => this.registerCategory[index].is_selected = true;
    },
  }

关于typescript - 错误: [Vue warn]: Invalid handler for event "click": got undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75345342/

相关文章:

javascript - Vue从数组中删除项目

javascript - Vue 子组件属性不起作用

angular - 我如何根据 Angular 条件使用字符串插值

javascript - 在 typescript (javascript)中向类方法添加方法

javascript - 如何使用 Vue.js 更改鼠标悬停时单个列表对象的 html 内容(Font-Awesome Icon)

vue.js - 如何从 HH :mm:ss to HH:mm 的 Bootstrap-vue 的 b-form-timepicker 组件返回日期格式

javascript - 输入文本框验证在 Vue js 中不起作用

typescript - 在 Typescript 中,为库中的类创建扩展方法

angular - 服务请求出现 404 错误。如何更改回复状态

javascript - 编写自定义表单控件以在 Vue.js 中使用 v-model