Javascript 在已创建的挂钩Vue Kalendar插件中未定义的getEvents

Javascript 在已创建的挂钩Vue Kalendar插件中未定义的getEvents,javascript,vue.js,Javascript,Vue.js,Vue Kalendar应用程序遇到一些问题,请严格按照说明操作 可在此处找到链接: 我的代码中有以下内容(必须将kalendar-vue.css更改为KalendarVue.css才能使其正常工作,因此不确定是否遗漏了其他内容) 我现在有几个错误 创建的挂钩中出错:“TypeError:无法设置未定义的属性“getEvents” 及 创建的钩子中出错:“TypeError:无法设置未定义的属性'buildWeek'” 我正在使用的代码中没有生命周期挂钩,所以我不确定组件本身是否有问题,我一直在

Vue Kalendar应用程序遇到一些问题,请严格按照说明操作

可在此处找到链接:

我的代码中有以下内容(必须将kalendar-vue.css更改为KalendarVue.css才能使其正常工作,因此不确定是否遗漏了其他内容)

我现在有几个错误

创建的挂钩中出错:“TypeError:无法设置未定义的属性“getEvents”

创建的钩子中出错:“TypeError:无法设置未定义的属性'buildWeek'”

我正在使用的代码中没有生命周期挂钩,所以我不确定组件本身是否有问题,我一直在四处寻找,没有人提到这一点,所以我的代码似乎有问题

<template>
    <kalendar :configuration="calendar_settings" :events="events"/>
</template>

<script>
import {
    Kalendar
} from 'kalendar-vue';
import 'kalendar-vue/dist/KalendarVue.css';

export default {
    components: {
        Kalendar,
    },
    data: () => ({
        events: [],
        calendar_settings: {
            style: 'material_design',
            view_type: 'week',
            cell_height: 20,
            scrollToNow: true,
            current_day: new Date(),
            read_only: false,
            day_starts_at: 0,
            day_ends_at: 24,
            overlap: true,
            hide_dates: ['2019-10-31'], // Spooky
            hide_days: [6],
            past_event_creation: true
        },
        new_appointment: {
            title: null,
            description: null
        }

    }),

    methods: {
        addEvent(popup_data, form_data) {
            let payload = {
                data: {
                    title: this.new_appointment.title,
                    description: this.new_appointment.description,
                },
                from: popup_info.start_time,
                to: popup_info.end_time,
            };

            this.$kalendar.addNewEvent(
                payload,
            );
            this.$kalendar.closePopups();
            this.clearFormData();
        },

        // Remove Event
        removeEvent(kalendarEvent) {
            let day = kalendarEvent.start_time.slice(0, 10);
            this.$kalendar.removeEvent({
                day,
                key: kalendarEvent.key,
                id: kalendarEvent.kalendar_id,
            })
        },
    }

}
</script>

<style scoped>

</style>

进口{
卡伦达
}来自“kalendar vue”;
导入“KalendarVue/dist/KalendarVue.css”;
导出默认值{
组成部分:{
卡伦达,
},
数据:()=>({
事件:[],
日历设置:{
风格:“材料与设计”,
视图类型:“周”,
单元高度:20,
现在:是的,
当前日期:新日期(),
只读:错误,
第天开始时间:0,
第二天24点结束,
重叠:对,
隐藏日期:['2019-10-31'],//诡异
隐藏天数:[6],
过去事件创建:真
},
新委任:{
标题:空,
描述:空
}
}),
方法:{
addEvent(弹出式数据、表单数据){
让有效载荷={
数据:{
标题:this.new_appointment.title,
description:this.new_约会.description,
},
from:popup_info.start_time,
至:弹出\信息。结束\时间,
};
此.$kalendar.addNewEvent(
有效载荷,
);
这是.kalendar.closes弹出窗口();
这是.clearFormData();
},
//删除事件
removeEvent(kalendarEvent){
let day=kalendarEvent.start_time.slice(0,10);
这是$kalendar.removeEvent({
白天
key:kalendarEvent.key,
id:kalendarEvent.kalendar_id,
})
},
}
}

上面的代码就是我正在使用的组件。

我以前从未使用过此组件,但快速深入源代码会发现:

因此,在
kalendar容器的
created
钩子中,vue
是:

this.$kalendar.getEvents=()=>{
这与您看到的错误消息有关

所以问题是,
$kalendar
应该从哪里来

进一步挖掘源代码可在此处找到:

为什么不在插件的
安装
功能中添加它我不知道,但似乎您需要自己添加它:

Vue.prototype.$kalendar={};

只要看几分钟源代码,我就会对在我自己的应用程序中使用这个组件感到紧张。

谢谢你的回复,非常有用!我像你一样翻阅了源代码,但在main.js中找到了代码,所以我有点困惑为什么它不起作用。除了需要一点挖掘才能找到一个t为了让这项功能发挥作用,您是否有任何具体的问题?如果您有任何相关知识,我们将不胜感激:)@Mtlj1991 1.奇怪的安装过程,2.在原型上使用共享的
$kalendar
对象传递信息,3.使用
窗口污染全局命名空间。kalendarHelpers
,4.控制台登录,5.奇怪的我们使用
道具上的
验证器
来检查
类型
已检查的内容。6.
设置间隔
已使用,但从未清除。这只是快速查看,足以吓跑我。谢谢,我要避免这种情况,回到绘图板上。