【问题标题】:Pass data object to component from Vue for loop将数据对象从 Vue for 循环传递给组件
【发布时间】:2017-10-12 08:30:25
【问题描述】:

所以我有一些带有帖子的对象,我正在使用 v-for 在自定义组件中对其进行迭代,但是如何将数据从该对象传递到该组件,循环是一回事,显示数据是另一回事.. .

<app-single-post v-for="post in posts" postData="$post"></app-single-post>

这是我的组件声明。我还需要某种特殊的道具设置吗?一次又一次出现同样的错误:

Property or method "postData" is not defined

【问题讨论】:

标签: javascript json object vue.js


【解决方案1】:

使用binding syntax

<app-single-post v-for="post in posts" :post="post" :key="post.id"></app-single-post>

Camel 大小写的属性在用作属性时需要转换为 kebab-case。另外,我添加了一个key。当您使用v-for 时,您应该始终使用key,并且在您迭代自定义组件时需要它。理想情况下,如果有可用的post.id,您会希望使用它。

在你的组件中,你应该有一个这样定义的属性:

export default {
    props:["post"],
    methods: {...},
    etc.
}

要在组件模板中引用帖子,您可以使用

 {{post.id}}

以及内部方法

this.post

【讨论】:

  • 好的,但是如何通过{{post.id}} 访问组件中的对象我有未定义的错误:(
  • @Lukas 在你的组件中你需要定义属性,props: ["postData"]
  • @lukas 你希望它在组件中调用post
  • 您确定posts 中的各个对象都有一个名为id 的键吗?如果没有,它会抛出一个未定义的错误。
  • @Terry 我从他的评论中推断出来的;但你是对的,如果它不存在,它将是未定义的。
猜你喜欢
  • 2021-07-24
  • 2018-07-23
  • 2020-12-13
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
  • 2019-09-16
  • 2018-08-05
相关资源
最近更新 更多