gpt4 book ai didi

vue.js - Vue 2 Prop 未定义

转载 作者:搜寻专家 更新时间:2023-10-30 22:34:41 25 4
gpt4 key购买 nike

求助!我在子模板中有“未定义” Prop 。

主要代码:

// some code before
window.Vue = require('vue');
import EventBus from '../components/event-bus';
// some code after

Vue.component('calendar-select', require('../components/admin/calendar_select.vue'));

const app = new Vue({
el: '#app',
data: function() {
return {
isActiveCalendar: true
}
},
methods: {
toggleCalendar() {
this.isActiveCalendar = !this.isActiveCalendar;
}
},
mounted() {
EventBus.$on('toggleCalendar', this.toggleCalendar);
}
});

在此之后我创建了这样的模板:

<template>
<div class="custom-select" v-bind:class="{ active: isActiveCalendar}" >
<div class="box flex" v-on:click="toggleCalendar" >
<span>Calendar</span>
<img src="/assets/img/admin/arrow-down.png" alt="#">
</div>
</div>
</div>
</template>

<script>
import EventBus from '../event-bus';
export default
{
// ------- start
props: ['isActiveCalendar'],
data: function() {
return {
}
},
methods: {
toggleCalendar: function(event) {
console.log(this.isActiveCalendar)
EventBus.$emit('toggleCalendar');
}
}
// ------- end
}
</script>

当我在 this.isActiveCalendar 上执行 console.log 时,变量未定义,在 Chrome 的 Vue 插件中也是一样。

请告诉我,我做错了什么!

谢谢!

最佳答案

documentation 中所述用于传递 Prop 。

HTML 属性不区分大小写,因此在使用非字符串模板时,camelCased prop 名称需要使用它们的 kebab-case(连字符分隔)等价物:

在这个例子中你需要使用

<calendar-select v-bind:is-active-calendar="isActiveCalendar"></calendar-sele‌​ct>

这样它将变量的值传递给 prop。

关于vue.js - Vue 2 Prop 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45760231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com