【问题标题】:Vue JS send data from v-for on button clickVue JS 在按钮单击时从 v-for 发送数据
【发布时间】:2018-12-29 13:28:35
【问题描述】:

我是 Vue JS 的新手,我遇到了一个小问题

我正在循环遍历一个数组,并且我在循环的 div 中有一个按钮

思路是在点击事件后获取指定数据的数据

例如,假设我有这个数组numbers: [1,2,3,4,5],我正在像这样循环遍历它

<div v-for="number in numbers">
    <p>{{ number }}</p>
    <button v-on:click="getTheSelectedOne"> Get The Value </button>
</div>

我试过这样做

<button v-on:click="getTheValueOfTheSelectedOne(number)"> Get The Value </button>

但我遇到了一个错误,

我怎样才能达到这样的结果?

【问题讨论】:

  • 错误是什么?

标签: javascript arrays vue.js vuejs2 vue-component


【解决方案1】:
<div v-for="number in numbers">

应该是:

<div v-for="(number, index) in numbers" :key="index">

以下内容:

<button v-on:click="getTheSelectedOne"> Get The Value </button>

应该是:

<button v-on:click="getTheSelectedOne(number)"> Get The Value </button>

而且您必须定义该方法:

methods: {
  getTheSelectedOne (number) {
    // then number will be the number
    console.log(number)
  }
}

【讨论】:

  • v-for 可以双向使用,所以我想这不应该是问题:vuejs.org/v2/guide/…
  • 大多数 linter 会抱怨,在 2.2.0+ 中,当使用 v-for 和组件时,现在需要一个键。 vuejs.org/v2/guide/list.html#key
  • 虽然错误很可能是 getTheSelectedOne 没有被定义,但在 OP 联系之前谁知道。
  • 啊。错过了关于钥匙的部分!是的。对于该用例,它是必需的。
猜你喜欢
  • 2018-02-09
  • 2022-01-05
  • 2020-07-01
  • 2012-10-26
  • 2021-01-24
  • 2022-01-07
  • 1970-01-01
  • 2021-09-13
  • 2021-09-10
相关资源
最近更新 更多