收藏
回答

没有使用setData()就将page里的data数据更改了?

  doTapWuXingCheck(event) {
    const { id: strCodeID } = event.currentTarget.dataset;
    let strCodeIDArr =  strCodeID.split('-');
    let wuXingGPT = this.data.m_wuXingGPT;
    let wuXingRadio = this.data.m_wuXingRadio;

    // 修改选择状态,直接取反原先的值
    wuXingGPT[strCodeIDArr[0]][strCodeIDArr[1]].on = !wuXingGPT[strCodeIDArr[0]][strCodeIDArr[1]].on;

    let sum = 0;
    wuXingGPT.map((items,index) => {
      // 判断某个五行中是否有选择如果有选择就进行修改单选的图片展示
      const result = items.find(item => item.on);
      if(result != undefined && result != null && result != ''){
        wuXingRadio[index].flag = true;
      }else{
        wuXingRadio[index].flag = false;
      }


      // 使用reduce函数统计集合中age参数的值总和
      const wuXingSum = items.reduce((accumulator, currentValue) => accumulator + currentValue.on, 0);
      wuXingRadio[index].sum = wuXingSum;
      sum += wuXingSum;
    })
    console.log("wuXingRadio: ",this.data.m_wuXingRadio);
    console.log("m_wuXingGPT: ",this.data.m_wuXingGPT);
    if(sum > 3){
      Notify('您已选择超过3项!');
      return;
    }
    this.setData({
      m_wuXingGPT: wuXingGPT,
      m_wuXingRadio: wuXingRadio
    })
  },


我记得以前正常的逻辑是:如果大于3这个方法就直接退出,没有调用到setData()方法来修改参数所以 page里的data数据是不会进行更改的。现在却更改了

回答关注问题邀请回答
收藏
登录 后发表内容