如何发送和接收 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" />