在退出小程序后重新进入后会自动提交一次drawTable的原因是在onReady()函数中调用了drawTable()函数。onReady()函数是在小程序初始化完成时触发的生命周期函数,所以每次重新进入小程序时都会执行onReady()函数,从而调用drawTable()函数。

要解决这个问题,可以在onReady()函数中添加一个判断条件,只有当缓存中没有保存的数据时才调用drawTable()函数。修改后的代码如下:

onReady() {
  const ctx = wx.createCanvasContext('myCanvas');
  this.ctx = ctx;

  // 从缓存中获取之前保存的数据
  const savedData = wx.getStorageSync('canvasData');
  if (savedData) {
    this.setData({
      bh: savedData.bh,
      mc: savedData.mc,
      arr1: savedData.arr1,
      dw: savedData.dw,
      date: savedData.date,
      arr2: savedData.arr2,
      zt: savedData.zt,
      y: savedData.y,
      clickCount: savedData.clickCount
    });
    this.setData({ rows: savedData.rows });
  } else {
    this.drawTable();
  }
},

这样,只有当缓存中没有保存的数据时才会调用drawTable()函数,避免了每次重新进入小程序都自动提交一次drawTable

请检查一下代码为什么在退出小程序后重进后会自动提交一次drawTable。 onReady const ctx = wxcreateCanvasContextmyCanvas; thisctx = ctx; thissetData rows ; 从缓存中获取之前保存的数据 const savedData = wxgetStorageSynccanv

原文地址: https://www.cveoy.top/t/topic/iia0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录