繁体   English   中英

事件函数中的数据对象不起作用,并导致未定义

[英]Data object inside the event function doesn't work and resulted to undefined

将对象数据放入事件中时,我的值不确定。

这是我的代码:

data(){
    return {
       eventSources: [],
       myId: 1
    }
},
methods:{
   myMethod(){
     this.eventSources = [{
          events(start,end,timezone,callback){
              alert(this.myId); 
              axios.get(`/Something?id=${this.myId}`).then(response=>{
                  callback(response.data);
              }).catch(error=>{console.log(error);});
          }
     }]
   }
}

我的警报导致undefined但是当我将警报置于this.eventSources = [{...]]上方时,警报的值为1

我希望有人能帮助我。

问题是this里面events()实际上不是你的Vue的实例。 您可以通过将events声明为箭头函数来修复上下文:

this.eventSources = [{
  events: (start,end,timezone,callback) => {
    alert(this.myId);
  }
}]

 new Vue({ el: '#app', data() { return { eventSources: [], myId: 1 }; }, methods: { myMethod() { this.eventSources = [{ events: (start,end,timezone,callback) => { alert(this.myId); } }] this.eventSources[0].events(0, 1, 'UTC', data => console.log(data)) } } }) 
 <script src="https://unpkg.com/vue@2.5.16"></script> <div id="app"> <button @click="myMethod">Click</button> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM