zoukankan      html  css  js  c++  java
  • 微信小程序踩坑(不定时更新)

    emmmm,觉得自己小程序太薄弱了,所以还是找个东西练手,不过还是要感谢某大神提供的“扒小程序”的方法,虽然不是说拿下来就能用,但是作为仿小程序来说,我要的图片素材,页面名称都有了.

    地址贴出来:https://blog.csdn.net/yuzsmc/article/details/82785466 (不一定适合每个人用,看情况吧)

    接下来看看我这两天踩的坑(小程序太久没接触了,跟刚学差不多)

    1.this.setData报错

    这个问题大多数人都踩过坑了,原因就是在于wx.request 返回东西之后,success相当于一个内部闭包,this.data是拿不到东西的,所以需要在他之外着重声明一下'var that= this',或者你想用_this也行。

    2.关于怎么渲染循环数据。

    从一进小程序的时候就需要把数据库数据查出来渲染到页面的公共data上面,或许你可以定个list:[],然后再试渲染页面。跟着就是用wx:for="{{array}}",这点跟vue.js有些相似。然后,有个wx:for-item是用来指定‘数组当前元素变量名’的,看着名字解释有点懵逼,但是看文档eg之后就知道了,栗子是这样的:{{item.name}},也就是说当wx:for-item="gushengyan"的时候,渲染列表元素就应该是{{gushengyan.name}},然后还有个wx:for-index,用来指定下标,这个在我踩的第三个坑会用到。

    3.如何改变循环列表中某个元素属性(class或者style , 主要是视图变化)

    举个简单的例子,在一堆循环下来的女明星ABCDE和何洁中,你要给何洁投票,每个头像旁边有个投票按钮,点击一下,发送请求到后台,后台完成数据库修改返回,前端接收到返回的数据之后需要处理,当res.data.code==200的时候,需要把前端那个投票的按钮显示为已投票,怎么做呢?我看到有人的方法是又循环所有的list,重新赋值list,emmm,个人认为不可取,万一有那么几千几万个,可能会比较影响性能,就想改变那一个就行了,那么问题来了,怎么找到那个元素?this?不行,that?不行,也不能用jQuery,$(this)更不要想; ——想想刚才用指定的下标,我们暂且叫它Index,var Index = datas.currentTarget.dataset.index,打印一下发现真的是下标,好了,列表下标获取到了,也就是在指定的list列表里的第Index个数组元素里就是我需要变更的数据,怎么找到呢?

    我先这么试了下:

    that.setData({
       list[Index].attend:res.data.vote
    })
    that.setData({
       “list[“+Index+”].attend”:res.data.vote
    })

    这都不用看,直接报错,根本不用点击,好吧,外面加引号试试:

    that.setData({
       “list[Index].attend”:res.data.vote
    })

    这样子,不点击的时候是不报错的,点击之后就报错

    后来百度到一个方法,亲测好使:https://blog.csdn.net/abc564643122/article/details/79580759

    然后我也改改我的方法:

              success(res) {
              if(res.data.code==200){
                var change = "list["+Index+"].vote";
                that.setData({
                  [change]:res.data.data.vote
                })
              }
              }

    搞定。

    技术最菜,头发最少
  • 相关阅读:
    MySQL 约束
    MySQL 基础
    LeetCode-Backtracking-Easy 回溯算法
    cookie session区别
    mac环境下支持PHP调试工具xdebug,phpstorm监听
    dede修改移动文档的js
    ajax是怎么发请求的和浏览器发的请求一样吗?cookie
    linux命令
    mysql里的sql函数
    nginx启动
  • 原文地址:https://www.cnblogs.com/gushengyan/p/10767676.html
Copyright © 2011-2022 走看看