如何发送和接收 object 作为 Vue.js 中的道具
How to send & receive object as a props in Vue.js
我有一个产品 object,我正在从 API 电话中获取它。因此,在 parent 组件中,我想将此 object 发送到 child object 中,即 SoldTickets 组件。
所以这是我的 parent 组件:
<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>
还有我的child:
<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 还很陌生,所以我对道具不是很有信心。你能帮我解决这个问题吗?
只需用 ""
或 ''
包装绑定值,例如:
<SoldTickets :item="item" />
你基本上是对的,但有几个错误:
你的道具在子组件中没有正确声明,你不应该在那里有“数据”。您要声明的所有道具都直接放在组件声明的“道具”键下:
export default {
props: {
item: Object,
},
}
您还缺少父组件中属性值的引号,因此这是无效的 HTML:
<SoldTickets :item = item />
应该是
<SoldTickets :item = "item" />
我有一个产品 object,我正在从 API 电话中获取它。因此,在 parent 组件中,我想将此 object 发送到 child object 中,即 SoldTickets 组件。
所以这是我的 parent 组件:
<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>
还有我的child:
<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 还很陌生,所以我对道具不是很有信心。你能帮我解决这个问题吗?
只需用 ""
或 ''
包装绑定值,例如:
<SoldTickets :item="item" />
你基本上是对的,但有几个错误:
你的道具在子组件中没有正确声明,你不应该在那里有“数据”。您要声明的所有道具都直接放在组件声明的“道具”键下:
export default {
props: {
item: Object,
},
}
您还缺少父组件中属性值的引号,因此这是无效的 HTML:
<SoldTickets :item = item />
应该是
<SoldTickets :item = "item" />