如何在 Vue.js 中将对象作为道具发送和接收
Posted
技术标签:
【中文标题】如何在 Vue.js 中将对象作为道具发送和接收【英文标题】:How to send & receive object as a props in Vue.js 【发布时间】:2021-12-24 20:58:27 【问题描述】:我有一个 Product 对象,我从 API 调用中获取它。所以在父组件中,我想将此对象发送到子对象中,即 SoldTickets 组件。
这是我的父组件:
<template>
<section id="cart-page" class="row">
<div v-for="item in cart.attributes.items" :key="item.id">
<div class="col-lg-8 col-md-12 col-sm-12 col-xs-12">
<div class="title">WARENKORB</div>
<SoldTickets :item = item />
</div>
</div>
</section>
</template>
还有我的孩子:
<template>
<div id="sold-tickets">
<div class="card">
<div class="sold-tickets-actions properties">
<div class="sold-tickets-inner">
<div class="ticket-details">
<div class="ticket-prop">
<div class="ticket-name"> item.product_name </div>
<div class="ticket-type"> item.variation_name </div>
</div>
</div>
<DeleteButton @click.prevent="removeProductFromCart(item.id)" />
</div>
</div>
</div>
</div>
</template>
<script>
export default
props:
data:
item: Object,
,
</script>
所以我是 Vue 的新手,所以我对 props 不是很有信心。你能帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:只需用""
或''
包装绑定值即可:
<SoldTickets :item="item" />
【讨论】:
【参考方案2】:你基本上是对的,但有几个错误:
您的道具在子组件中未正确声明,您不应该在其中包含“数据”。您要声明的所有道具都直接放在组件声明的“道具”键下:
export default
props:
item: Object,
,
您还缺少父组件中属性值的引号,因此这是无效的 html:
<SoldTickets :item = item />
应该是
<SoldTickets :item = "item" />
【讨论】:
我收到此错误:TypeError: Cannot read properties of undefined (reading 'product_name') 我刚刚注意到你的道具声明中有一个错误,我会编辑我的答案。 感谢您的回答 好了,主要问题是你的 props 没有正确声明。 我不敢相信我没看过。谢谢你:)以上是关于如何在 Vue.js 中将对象作为道具发送和接收的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Vue.js 中将实例化的 Vue 组件作为道具传递?