微信小程序方法中非setdata可以设置data值?每次点击无论点击确定还是取消,form已经改变?
发布于 6 年前 作者 xiulan43 10272 次浏览 来自 问答

按钮点击方法,弹出对话框选择取消,form值仍然发生改变,求大神指引

choose(e){

var form=this.data.form

form_contemp=form.items[0]

…经过一系列的操作改变了 form_contemp,其中并未涉及this.setData

form.itemp[0]=form_contemp //反过来给form对应的位置更改数据

wx.showModal({

    title:“确认选择为:”,

     success (res) {

     if (res.confirm) {

上传的云数据库的方法,省略

          }).then(res=>{

成功后,才setData

console.log(res)

that.setData({

form:form

 })

    }).catch(err=>{

        wx.showToast({

          title: ‘网络出错,请重试’,

        })

      })

             console.log(‘用户点击确定’)

 } else if (res.cancel) {

       console.log(‘用户点击取消’)

 

     }

}

1 回复

form=this.data.form 是将this.data.form对象的内存地址传递给form ,修改form变量就是修改this.data.form。除非你用JSON.stringify()深拷贝。setData仅仅是将数据更新到模板。

回到顶部