微信小程序Component observers監聽data數據更新導致死循環bug


使用數據監聽器

有時,在一些數據字段被 setData 設置時,需要執行一些操作。

例如, this.data.sum 永遠是 this.data.numberA 與 this.data.numberB 的和。此時,可以使用數據監聽器進行如下實現。

Component({
  attached: function() {
    this.setData({
      numberA: 1,
      numberB: 2,
    })
  },
  observers: {
    'numberA, numberB': function(numberA, numberB) {
      // 在 numberA 或者 numberB 被設置時,執行這個函數
      this.setData({
        sum: numberA + numberB
      })
    }
  }
})

當我嘗試按照以上方法進行監聽數據時,錯誤的設置了

this.setData({
     numberA:numberA,// 文檔里面是設置的sum變量,我這里設置了監聽的變量
});

導致無限循環監聽卡死。這里不需要重新設置setData,因為組件已經獲取到了最新的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM