I have a function like so in my class
  showMessageSuccess(){
    var that = this;
    this.messageSuccess = true;
    setTimeout(function(){
      that.messageSuccess = false;
    },3000);
  }
How can I re-write this so I don't have to store a reference to 'this' in the 'that' var? If I use 'this' inside the setTimeout, the messageSuccess bool doesn't seem to change/get updated.
Answer
You need to use ArrowFunction ()=> to preserve this context within setTimeout. 
// var that = this; // no need of this line
this.messageSuccess = true;
setTimeout(()=>{    //<<<---    using ()=> syntax
      this.messageSuccess = false;
 }, 3000);
 
No comments:
Post a Comment