vue.js - Vue 动态类绑定与计算道具
问题描述
我正在尝试通过计算的开关盒将一个类从父组件绑定到子组件到插槽。家长:
<template>
<mcTooltip :elementType="'text'"><p>Test</p></mcTooltip>
</template>
<script>
import mcTooltip from '@/components/mcTooltip/index.vue';
export default {
components: {
mcTooltip
}
};
</script>
孩子:
<template>
<div>
<slot :class="[elementClass]" />
</div>
</template>
<script>
export default {
props: {
elementType: {
type: String,
required: true,
// must have one of these elements
validator: (value) => {
return ['text', 'icon', 'button'].includes(value);
}
}
},
data() {
return {};
},
computed: {
elementClass: () => {
// return this.elementType ? 'tooltip--text' : 'tooltip--text';
// calls prop value for verification
switch (this.elementType) {
case 'text':
return 'tooltip--text';
case 'icon':
return 'tooltip--icon';
case 'button':
return 'tooltip--button';
default:
return 'tooltip--text';
}
}
},
};
</script>
<style lang="scss" scoped>
.tooltip--text {
text-decoration: underline dotted;
cursor: pointer;
&:hover {
background: $gray_220;
}
}
</style>
无论我尝试什么,我似乎都无法让它发挥作用。那是我最近的尝试。vue devtools 对我的计算道具说“(评估期间的错误)”。
解决方案
我找到了一个解决方案,我这样做的方式如下:
<div
v-show="showTooltip"
ref="mcTooltipChild"
:class="['tooltip__' + elementType]"
></div>
elementType: {
type: String,
default: 'small',
},
推荐阅读
- python - Flask 邮件因未发送到某些域而延迟
- python - 使用 Python boto 对 DynamoDb 进行 MFA 身份验证
- ios - Fastlane:没有与“...”匹配的团队“...”的证书。- 如何指定合适的团队?
- kotlin - Kotlin:扩展函数与带有调度接收器的成员函数
- java - 检查 Vaadin 和 Java 中的必填字段
- docker - docker swarm 解锁钥匙丢失
- c - 为什么这个程序有时会无限循环而不是总是循环
- sql - 如何向 Postgres 请求某个时间序列中不同日期的计数?
- python - 如何将列表列表的位置相乘
- reactjs - 反应状态部分丢失