微信小程序this.setData is not a function

  1. 作用域的问题

    demo: function () {
        let that = this;
        //回调中的作用域问题
        util.requestNoToken(url,params).then(function (res) {
          if (res.code === 200) {
            //如果使用this则是当前请求自己,所以在外面定义:that
            that.setData({
              dicts: res.data
            })
          }
        });
      }
    
  2. 名称写法错误

    demo: function () {
        this.setdata({
            dicts: res.data
     })
    }
    //仔细检查发现大小写错误
    //setdata >>> setData 
    
  1. 脚本语言语法不严谨的问题

    //修改前
    demo: function () {
        that.setData({
            name: 'jack'
        })
        //实现接口回调
        (callback && typeof (callback) === "function") && callback();
    }
    
    
    
    //修改后
    demo: function () {
        that.setData({
            name: 'jack'
        });
        //实现接口回调
        (callback && typeof (callback) === "function") && callback();
    }
    
    
    • 对比两段代码发现没有明显差异,但是由于脚本语言的编写不需太严谨,在setData之后并没有使用[;]结尾,导致运行的时候出现了错误。会出现 this.setData is not a function。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容