javascript - Vue.js - 如何将道具传递给带有插槽的组件元素
问题描述
我正在尝试从包含插槽的组件元素传递道具
患者预订.vue
<user-profile :titlename="BOOKINGDETAIL">
<div class="block">
<div>Ereferral: 84884jjd</div>
<div>Gender: Male</div>
<div>Height: 84</div>
</div>
</user-profile>
用户配置文件.vue
<div class="block">
<div class="block">
<template v-if="titlename == 'BOOKINGDETAIL'">BOOKING DETAIL</template>
<template v-else-if="titlename == 'BOOKING'">BOOKING</template>
<template v-else>RESULT DETAIL</template>
</div>
<div class="block">
<slot></slot>
</div>
</div>
export default {
name: "UserProfile",
props: {
titlename: {
type: String,
default: ""
}
}
}
现在,每当我将user-profile
组件与titlename
带有任何不进入UserProfile
组件的单词的 props 绑定时,它总是默认为显示 RESULT DETAIL 的空字符串。
请我需要有关如何解决此问题的帮助
解决方案
尝试像这样使用作用域插槽:
用户配置文件.vue
<div class="block">
<div class="block">
<template v-if="titlename == 'BOOKINGDETAIL'">BOOKING DETAIL</template>
<template v-else-if="titlename == 'BOOKING'">BOOKING</template>
<template v-else>RESULT DETAIL</template>
</div>
<div class="block">
<slot :title="titlename"></slot>
</div>
</div>
患者预订.vue
<user-profile :titlename="BOOKINGDETAIL">
<template v-slot:default="slotProps">
<div class="block">
// use slotProps.title to get access to titlename passed via slots
<div>Ereferral: 84884jjd</div>
<div>Gender: Male</div>
<div>Height: 84</div>
</div>
</template>
</user-profile>
推荐阅读
- javascript - Firestore orderby desc startAt 不返回任何结果
- c# - 检查测试结束时是否有任何线程
- javascript - 如何在带有多个文本字段的画布上显示用户输入和文本换行
- c# - 加载任何名称的第一张图像,解决异常错误,将丢弃的图像复制到文件夹
- html - 是否可以在放大的动态背景图像上放置固定元素(按钮、问候语)?
- docker - 如何在 docker-compose 文件中引用 traefik v2 的自签名 SSL 证书?
- python - 熊猫找到合并的逆
- php - 脚本无法识别文件扩展名以在 php 中上传 pdf
- python - AttributeError: 'list' 对象在将 DF 附加到列表时没有属性'to_excel',并将这些 DF 的保存与 openpyxl 连接到聚合文件
- python - 如何使用主窗口自动调整 Qwidget 的大小?