[Vuejs]-Data() variable refuses to update when set inside nested functions

0👍

Use arrow functions instead of anonymous functions.

Arrow functions do not bind this, and thus this will refer to the outer scope.

created() {
  console.log("CREATED HOOK")
  ZOHO.embeddedApp.on("PageLoad", (data) => {
    console.log(data);
    //Custom Business logic goes here
    let entity = data.Entity;
    let recordID = data.EntityId[0];

    ZOHO.CRM.API.getRecord({ Entity: entity, RecordID: recordID })
      .then((data) => {
        console.log(data.data[0])
        console.log(data.data[0].name)
        //THIS DOES NOT WORK - variable still comes back 'x' in template, notice this is nested twice.
        this.currentProvider = data.data[0].name;
      });

  });

  ZOHO.embeddedApp.init();

  //THIS DOES WORK - SETS VAR TO "reee" in template, notice this is not nested
  this.currentProvider = "reee"
}

Leave a comment