收藏
回答

使用setData 对对象赋值失败QAQ?

使用this.setData方法对对象赋值失败!改用this直接赋值可以,什么情况?哪位老哥解释一下

回答关注问题邀请回答
收藏

6 个回答

  • ᰔᩚ.深知你意
    ᰔᩚ.深知你意
    2020-05-21

    this指向的request.then这个函数内部不是全局的了,不能使用setData() 你在 request外面给this赋值 var that=this; 里面使用的时候用,that.setData({})

    2020-05-21
    有用 2
    回复 11
    • ᰔᩚ.深知你意
      ᰔᩚ.深知你意
      2020-05-21
      你在request 内部使用this,相当于是给 request  增加了一个原型属性,并不是指向全局的oldUserInfo。  作用域 的问题。   我个人是这么理解的。
      2020-05-21
      回复
    • 花火
      花火
      2020-05-21
      刚改了没有效果啊
      2020-05-21
      回复
    • ᰔᩚ.深知你意
      ᰔᩚ.深知你意
      2020-05-21回复花火
      console.log(that.data.oldUserInfo)
      2020-05-21
      1
      回复
    • 花火
      花火
      2020-05-21回复ᰔᩚ.深知你意
      感谢问题解决了
      2020-05-21
      回复
    • 猛男陈阔
      猛男陈阔
      2020-05-21回复ᰔᩚ.深知你意
      明明就是setData异步的问题,不要在这里误导别人,他用的是箭头函数好不好?此时的this指向不是全局?他自己都说了this.data这样赋值可以赋值成功
      2020-05-21
      2
      回复
    查看更多(6)
  • 祺爸💎
    祺爸💎
    2020-05-21

    此this.oldUserInfo并不能渲染到wxml

    --↓↓👍点击“有用”是回答的动力哦

    2020-05-21
    有用 2
    回复
  • 黄因为
    黄因为
    2020-05-21

    图一:this.setData,应该用this.data.xxx访问。(只有data里面的变量, 才会影响视图)

    图二:this.xxx这种方式,变量定义在了Page({})之外。(不会影响视图)

    2020-05-21
    有用 1
    回复 1
    • 花火
      花火
      2020-05-21
      感谢解答,刚开始做小程序还有很多不了解
      2020-05-21
      回复
  • 猛男陈阔
    猛男陈阔
    2020-05-21

    你这个问题很明显了,setData是异步的,导致你打印this.oldUserInfo的时候,还没赋值,所以是undifend,你可以尝试着this.setData({oldUserInfo:res},()=>{console.log(this.data.oldUserInfo)}) 应该就可以打印出来了

    2020-05-21
    有用 1
    回复 4
    • 黄因为
      黄因为
      2020-05-21
      setData对于数据是同步的吧?对渲染层才是异步的。undifend是因为console.log(this.oldUserInfo),console.log(this.data.oldUserInfo)就正常了
      2020-05-21
      回复
    • 黄因为
      黄因为
      2020-05-21
      setData和this.oldUserInfo是两码事
      2020-05-21
      回复
    • 猛男陈阔
      猛男陈阔
      2020-05-21回复黄因为
      这个回复我赞同,因为没看到他的this.oldUserInfo 我以为是this.data.oldUserInfo
      2020-05-21
      1
      回复
    • 猛男陈阔
      猛男陈阔
      2020-05-21回复黄因为
      是的 我表达的不够清楚 setData更新视图是异步的,对数据层 是同步的 多谢指出
      2020-05-21
      回复
  • 👀
    👀
    2020-05-21

    1.this.xx=x不会让视图层响应更新

    2.this.setData是异步的

    2020-05-21
    有用 1
    回复
  • honey
    honey
    2021-05-28

    老哥,我也遇到这个问题了,怎么解决的,请教一下


    2021-05-28
    有用
    回复
登录 后发表内容
问题标签