提问人:Ron 提问时间:11/10/2023 最后编辑:Ron 更新时间:11/15/2023 访问量:27
为什么 Quasar、Vue 3 应用中 Child 组件中的 props 是空的?
Why the props in a Child component are empty in Quasar, Vue 3 app?
问:
我正在将 props 作为表中的一行传递给 Quasar vue3 应用程序中的 Child 组件表,但内容没有呈现,我想知道为什么?控制台很清楚。在父组件中,我定义了一个带有键和值的对象,并尝试将其作为道具传递给子组件,然后渲染它。我正在用按钮切换父组件中的模态窗口。
// Child component
const props = defineProps({
airCraft: {
required: true
}
})
const rows = [props.airCraft]
<template>
<q-dialog >
<q-card>
<q-card-section>
<q-table
title="name"
:rows="rows"
:columns="columns"
row-key="name"
:hide-bottom="rows.length > 0"
flat bordered
>
<template v-slot:body="props">
<q-tr :props="props">
<q-td key="id" :props="props">
{{ props.row.id }}
</q-td>
<template>
<q-table>
<q-card-section>
<q-card>
<q-dialog >
<template>
// Parent component
<script>
let airCraft = {
id: '1',
name: 'name'
}
<script setup>
import {ref} from 'vue'
let fixed = ref(true)
<template>
<ModalAircraft v-model="fixed" :airCraft="airCraft" @click='fixed = true'/>
<template>
答:
1赞
duckstery
11/10/2023
#1
我认为这是因为你没有激活你的,你应该这样改变你的q-dialog
ModalAircraft
<template>
<div>
<q-btn label="Click" @click="modal = true" />
<q-dialog v-model="modal">
<q-card>
<q-card-section>
<q-table
title="name"
:rows="rows"
:columns="columns"
row-key="name"
:hide-bottom="rows.length > 0"
flat
bordered
>
<template v-slot:body="props">
<q-tr :props="props">
<q-td key="id" :props="props">
{{ props.row.id }}
</q-td>
</q-tr>
</template>
</q-table>
</q-card-section>
</q-card>
</q-dialog>
</div>
</template>
<script setup>
import { ref } from 'vue';
const props = defineProps({
airCraft: {
required: true,
},
});
const rows = [props.airCraft];
const modal = ref(false);
</script>
我添加了一个在单击时切换到 true。然后,绑定到 .在组件渲染后,您会看到一个按钮。单击该按钮后,会弹出一个对话框,您将找到您的表格q-btn
modal
modal
q-dialog
代码在这里:https://stackblitz.com/edit/stackblitz-starters-icrnbz
评论
0赞
Ron
11/10/2023
谢谢,但它没有用。对不起。我没有在一开始就向你展示初始代码。因为我在父组件中有一个切换显示弹出窗口,上面有一个 ref 状态。无论如何,它都无济于事。我现在已经编辑了初始代码问题。
0赞
duckstery
11/10/2023
我可以看到你添加了一些东西。这里有 2 个问题。首先,整个是一个对话框,所以向它添加一个点击事件对你没有帮助,因为你无法点击它,因为它不在屏幕上。其次,您没有为 声明任何 v-model 处理程序,因此 on 毫无意义。尝试在 里面添加一个按钮,然后戴上它。移动你的内部.在那之后,一切都会好起来的fixed
ModalAircraft
ModalAircraft
v-model
ModalAircraft
ModalAircraft
@click
fixed
ModalAircraft
评论