【发布时间】:2019-10-05 23:05:42
【问题描述】:
我有 3 个 vue.js 嵌套组件:主、父、子。
父组件加载基本数据,子组件是一个简单的倒计时小部件,只需要配置一个数据。
如果我使用静态数据(IE 截止日期 ='2019-12-12')设置父脚本,则子显示小部件运行良好,但如果我使用动态数据,则会产生错误。
我正在使用 computed 将数据传递给子组件,如果我使用警报对其进行调试,我会看到 2 个警报:undefined,然后是正确的日期。
问题是第一个计算数据(undefined)使小部件崩溃,那么如何使用更新(加载)的数据创建子组件?
父模板:
<template>
<div>
<flip-countdown :deadline=deadline></flip-countdown>
</div>
</template>
父脚本:需要修复
export default {
components: {FlipCountdown},
props: ['event'],
computed: {
deadline: function () {
if (typeof(this.event.date)!="undefined") {
//alert(this.event.date)
return this.event.date;
} else {
return "2019-05-21 00:00:00";
}
},
},
子模板:有效
<template>
<div>
<flip-countdown :deadline="deadline"></flip-countdown>
</div>
</template>
【问题讨论】:
-
您的父模板和子模板看起来完全一样,只是您忘记了
deadline=deadline中的双引号(应该是deadline="deadline")。另外,为了防止deadline出错时出错,您可以将v-if="deadline"添加到您的<flip-countdown> -
谢谢,指令 v-if="deadline" 这是一个很好的修复。我使用了两个非常相似的组件来在一个地方拥有一个完整的组件。顺便说一句,我会更改名称以避免错误。使用指令 v-if 我将删除所有计算值。感谢您的建议。
标签: vue.js