为什么不能重置data里的某些数据?
发布于 4 年前 作者 majun 938 次浏览 来自 问答
let initteam = {
  p1:{name:""bg:0sg:0dw:0checked0},
  p2:{name:""bg:0sg:0dw:0checked0},
  p3:{name:""bg:0sg:0dw:0checked0},
  p4:{name:""bg:0sg:0dw:0checked0},
};
let initsc = {
  team1:"",
  team2:""
};
Page({
  data: {
    team:{
    },
    sc: {
    },
    },
onLoadfunction(option){
    const eventChannel = this.getOpenerEventChannel()
    const that = this
    eventChannel.on('acceptDataFromOpenerPage'function(data{
      let all = data.data
      initteam.p1.name = all[0]
      initteam.p2.name = all[1]
      initteam.p3.name = all[2]
      initteam.p4.name = all[3]
      that.clean() //这个可以设置初始data
    })
  },
clean() {
    let that = this
    that.setData({team:initteam})
    that.setData({sc:initsc})
  },

formSubmit(e){
    let that = this
    let sc = that.data.sc
    let team = that.data.team
    let score = e.detail.value
    let first = 0
    let fenshu = [0,0]
    let allsc = that.data.score
    for (const key in team) {
      if (team.hasOwnProperty(key)) {
        first += team[key].checked
      }
    }
    if (sc.team1 == "" && team.p1.dw != true && team.p3.dw != true) {
      console.log("请填分数") 
    } else if (first == 0) {
      console.log("请填头游")
    } else {
      that.tichuscore(fenshu,team,sc) 
      that.addsc(allsc,fenshu)
      that.setData({score:allsc})
      that.clean() //这里就不能重置data的数据
    }  },  

为什么onload里clean()可以设置data数据,forSubmit里clean()确无效?有没有什么方法在提交表单后把data里面team和sc的数据恢复?并且把所有switch、radio、input等表单的状态恢复。

1 回复
调用clean()不会报initteam is undefined 吗
回到顶部