【问题标题】:Access key from child component in vuevue中子组件的访问密钥
【发布时间】:2018-05-26 18:35:27
【问题描述】:

根据Vue docs,需要绑定一个key才能在v-for中使用自定义组件:

<template v-for="(task,i) in tasks">
    <task-card v-bind:task="task" v-bind:key="i"></task-card>
</template>

我想在子组件 (task-card) 中使用该键,但使用 this.key 或添加 key 作为道具(是保留的 Vue 关键字)都不起作用。有没有办法在不传递另一个值为“i”的道具的情况下做到这一点?目前与"vue": "^2.5.9"合作。

【问题讨论】:

  • this.$vnode.key.
  • 我一直在尝试有意访问使用 v-for 的组件内部的键值。我尝试通过this.$vnode.key 访问,但出现错误。 “无法读取未定义的属性‘键’”。任何想法如何访问key 的价值?也许它自 2017 年以来发生了变化。
  • @Ryan 希望这对将来的某人有所帮助。当我尝试从子组件访问this.$vnode.key 时,我只收到了“未定义”。如果您使用的是子组件,请通过 props 传递密钥。

标签: javascript vue.js vuejs2


【解决方案1】:

如果您想将数据传递给孩子,您应该使用 props(key 是保留的,因此您必须将其命名为其他名称)。

否则你可以通过this.$vnode.key访问组件内vnode上的key。

Vue 3

对于 Vue 3,API 已更改。您将需要从 internal private instance 访问 vnode,如下所示:this.$.vnode.key。据我所知,这是无证的,可能会改变;谨慎使用。

【讨论】:

  • 我一直在尝试有意访问使用 v-for 的组件内部的 key 值。我尝试通过 this.$vnode.key 访问,但出现错误。 “无法读取未定义的属性‘键’”。任何想法如何访问密钥的值?也许它自 2017 年以来发生了变化
  • get TypeError: Cannot read properties of undefined (reading 'key') too on 2021
  • 我已经用 Vue 3 解决方案编辑了答案。
猜你喜欢
  • 2012-10-31
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
  • 2019-05-23
  • 2017-10-02
  • 2017-03-23
  • 2021-02-01
  • 2020-09-30
相关资源
最近更新 更多