Javascript fullcalendar/VUE应用程序中的事件未更新

Javascript fullcalendar/VUE应用程序中的事件未更新,javascript,vue.js,fullcalendar,Javascript,Vue.js,Fullcalendar,在我的cal.vue组件中,我有一个fullcalendar组件。在cal.vue中,我有一个名为submit的方法。在submit中,我使用this.$refs.calendar对完整日历组件进行了(成功)引用。但是,当我执行this.$refs.calendar.$emit('refetchEvents')在我的提交功能中,不会获取事件(我的事件不会在我的日历上更新)。为什么我的事件在提交时没有更新?我如何更新它们 以下是相关代码: <template> <div i

在我的cal.vue组件中,我有一个
fullcalendar
组件。在cal.vue中,我有一个名为submit的方法。在submit中,我使用
this.$refs.calendar
完整日历组件进行了(成功)引用。但是,当我执行
this.$refs.calendar.$emit('refetchEvents')在我的提交功能中,不会获取事件(我的事件不会在我的日历上更新)。为什么我的事件在提交时没有更新?我如何更新它们

以下是相关代码:

<template>
   <div id="calendar"  :navL="navLinks" :event-sources="eventSources" @event-selected="eventSelected" @event-created="eventCreated" :config="config" >
      <button    class="btn btn-secondary" v-on:click="submit()">
         Submit
      </button>
      <full-calendar id="target" ref="calendar" :event-sources="eventSources" @event-selected="eventSelected" @day-click="click"@event-created="eventCreated" :config="config"></full-calendar>
   </div>
</template>

<script>
   const self = this;
   export default {
      name: 'calendar',
      data() {
         return {
            eventSources: [
               {
                  url: 'http://localhost:3000/getAppointments',
                  type: 'GET',
                  data: {
                     id: this.$store.getters.user
                  },
                  error: function() {
                     alert('there was an error while fetching events!');
                  },
               }
            ],  
         };
      },

      methods: {
         submit: function() {
            console.log(this.$refs.calendar); //prints fullcalendar VUE component
            this.$refs.calendar.$emit('refetchEvents'); //nothing appears to happen here
         },
      },
   }
</script>

提交
const self=这个;
导出默认值{
名称:'日历',
数据(){
返回{
事件来源:[
{
网址:'http://localhost:3000/getAppointments',
键入:“GET”,
数据:{
id:this.$store.getters.user
},
错误:函数(){
警报('获取事件时出错!');
},
}
],  
};
},
方法:{
提交:函数(){
console.log(this.$refs.calendar);//打印完整的日历VUE组件
this.$refs.calendar.$emit('refetchEvents');//此处似乎什么也没有发生
},
},
}
根据

应该是

this.$refs.calendar.$emit('refetch-events')

如果通过npm包使用香草FullCalendar:“@FullCalendar/core”、“@FullCalendar/daygrid”、“@FullCalendar/timegrid”、“@FullCalendar/vue”


什么是完整日历?包装jQuery插件的Vue组件?它仍然使用jQuery吗?full calendar是一个包装jQuery插件fullcalendar的VUE组件。我相信它使用jquery你有链接吗?至少有两个Vue wrappers.calendar.Vue是上面代码所在的位置。如果Vue代码看起来正常,则可能是我使用的Vue fullcalendar wrapper有问题。我会发布一个问题给他们,看看他们说什么谢谢伯特,我试过了,但似乎没有work@matt你能举个例子说明这个问题吗?我不能运行你的代码。事实上,这将是相当困难的设置,因为我要配置一个数据库作为well@Matt是的,这就是为什么,如果你能孤立这个问题,我们可以解决它。我不知道我现在是否能创建一个完整的工作示例,但感谢你迄今为止的帮助。这可能是包装器的问题,我会等到他们响应并在这里发布结果
this.$refs.calendar.$emit('refetch-events')
html: <full-calendar ref="fullCalendar" :events="events" />
inside a method to update an event:
        let calendar = this.$refs.fullCalendar.getApi()
        const updatedEvent = calendar.getEventById(eventId)
        updatedEvent.setProp('title', 'New Title')
        updatedEvent.setProp('backgroundColor', 'yellow')
        updatedEvent.setProp('borderColor', 'yellow')
        updatedEvent.setProp('textColor', 'black')
this.events.forEach(event => {
  ...similar code the above
})