收藏
回答

你们如何看待 setData 这个坑?

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 7.0.2 2.5.0

我们先来看看小官是怎么说明这个setData的用法的,直接截图:






上面说得很清楚了,视图层的数据异步更新,逻辑层的this.data同步更新,这么说就是不需要赋值语句了对吧,但是实际上并非如此,比如下面的语句:


        this.a = "a";

        this.setData({

            a: "a"

        })


如果没有第一个语句的话,就只能更新视图层,this.a却不发生变化,这样一来不就跟官方的说法相违背了吗?你们怎么看?小程序是基于MVVM模式的吗?有没有大佬解释一下,我入坑没多久,不喜勿喷,因为我喷不过你




/个性签名,不服不行;突破1万小时,你就是高手!😄


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

3 个回答

  • 好哇你个狗东西
    好哇你个狗东西
    2019-01-21

    是this.data.a  不是this.a   注意区分和vue的区别

    2019-01-21
    有用
    回复 1
    • 2019-01-22

      难怪,我以前一直写的this.data.a,后来发现用this.a好像也行,然后就简写了,现在发现并不一样

      2019-01-22
      回复
  • 半寸灰
    半寸灰
    2019-01-21

    首先

         this.a = "a";

            this.setData({

                a: "a"

            })


    没什么联系的。


    这两句才有联系

         this.data.a = "a";

            this.setData({

                a: "a"

            })


     this.data.a = "a";    是  this.data.a更新了   。但是wxml的显示没有更新。


      this.setData({

                a: "a"

            })

     this.data.a更新了   和wxml的显示也更新。



    官方的说法哪里违背了?  看不出来


    直接修改  this.data是无法改变页面状态的。




    2019-01-21
    有用
    回复
  • 2019-01-21

    setData相当于page.update的局部刷新

    2019-01-21
    有用
    回复
登录 后发表内容