近期完成了一个小程序,自己做的前后端开发、真是惨哭我了o(╥﹏╥)o,下面几点希望大家可以避雷。

首先,想先介绍一下我遇到问题的解决思路:

  1、先在postman调试接口,看数据获取是否正常,
  2、在微信开发者工具,考虑是不是语法不对,
  3、看看是不是组件的问题,有些组件是禁用一些点击事件的。

1.数据更新

  想改变data数据,并不是简单的data:{ }就可以的,因为视图层和逻辑层的数据更新不一致,所以需要使用API:this.setData({ }) 进行改变。

1.1 补充,如何用setData修改数组或对象中的一个属性值

  需求:改变lists[0]中的Sname

Page({
data:{
lists:[
{
Sno:"001",
Sname:"梨花"
},
{
Sno:"002",
Sname:"黛玉"
}
]
}
})

法一:直接修改

onLoad:function () {
var that = this;
that.setData({
'lists[0].Sname' : '小花'
})
}

法二:①定义一个变量 把(lists[0].Sname)用字符串拼接起来 ②修改变量

onLoad:function () {
var that = this;
var s = "lists[" + 0 + "].Sname";
that.setData({
[s] : '小花'
})
}

2.this指向

  当函数定义的时候,会使用API,此时this指向会改变。但想在函数中使用全局上下文的this,我们选择利用that进行this指向的改变。

  在一个新函数中,定义一个that变量等于this,即选择用that进行备份。

onLoad:function () {
var that = this;
}

3.存储全局变量

  ①首先在app.js中,定义全局变量globalData,可以原来存储登录状态的信息

globalData: {
user:{},
Status:{}
}

  ② 在其他js文件调用的时候,注意要先定义一个变量,然后再使用

onLoad: function (options) {
var app = getApp();
wx.request({
data: {
Sno: app.globalData.user.username,
}
)}
}

4.调用后端接口

  首先,注意后端返回的数据,格式可能不够统一。所以不能惯性思维,比如我当时 res.data.code ==> 应该是 res.data.error_code 。

5.图片处理问题

  当使用的图片资源过大,会导致包过大,而无法打包。
解决方案:
  ①将图片上传至QQ相册等,然后微信小程序在图片链接使用线上地址。
  ②使用BASE64进行图片转换。
  但是!当真机调试时,IOS系统无法展现图片,查找原因是因为图片没有配置服务器域名之类的问题,但后期配置了也没有效果。

  所以简单粗暴的,我选择把图片截图,不使用高清原图了,是的打包成功了。。。但后期还是要改善的,还是要保证用户体验感的!

后续还有填坑分享的,喜欢帮忙顶个文吧!

微信小程序踩坑之前端问题处理篇的更多相关文章

  1. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  2. 微信小程序踩坑记

    1:微信小程序之去掉横向滑动滚动条 /** 去除横向滚动条 */ ::-webkit-scrollbar { width: 0; height: 0; color: transparent; } 2: ...

  3. 微信小程序踩坑- tabBar.list[3].selectedIconPath 大小超过 40kb

    重新启动微信小程序编辑器的时候遇到了这样的一个问题: tabBar.list[3].selectedIconPath 大小超过 40kb 微信小程序开发的过程之中总会出现这样或者那样的错误,需要我们耐 ...

  4. 微信小程序踩坑

    微信小程序自定义属性data-xx使用注意事项 data-xx采用驼峰式命名时,数据传递打印显示(以jxsName与jxsname打印显示对比) data-xx全小写命名时,数据传递打印显示

  5. 微信小程序踩坑日记1——调用微信授权窗口

    0. 引言 微信小程序为了优化用户体验,取消了在进入小程序时立马出现授权窗口.需要用户主动点击按钮,触发授权窗口. 那么,在我实践过程中,出现了以下问题. . 无法弹出授权窗口 . 希望在用户已经授权 ...

  6. 微信小程序踩坑之一[thist]使用技巧

    刚上手小程序 时,习惯把this当成jquery中的$(this)来用,实际上这两个还是有差别的 在页面方法中调用其他方法,一般是用this.function(),直接调用小程序 的方法或函数则是用w ...

  7. 微信小程序踩坑之获取手机号

    最近在开发小程序遇到这样一个问题, 在用户点击授权后去解密手机号时会出现第一次失败,第二次成功的情况.研究了一段时间,终于找到比较合理的解决方案,在此记录并总结一下,希望可以帮助到大家. 需求描述 在 ...

  8. 微信小程序踩坑之一[wx.request]请求模式

    最近在做小程序时,使用wx.request()方法请求时, 当使传输string类型时,一定要声明method请求模式为post,否则会一直报错,而不声明时默认为get, 已填坑 =,= wx.req ...

  9. 微信小程序踩坑之一【weui-wxss-master单选按钮图标修改思路】

    小程序原生所带的weui框架做小程序UI实在太方便了,但是他的一些细微变化也是让开发中碰到不少头疼的问题 一直以来单选多选的美化都是设计师重点表达的地方之一 而weui-wxss-master中的单选 ...

随机推荐

  1. C#实现自定义列表

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. Excel表格中无法中间插入新行列! 提示:在当前工作表的最后一行或列中,存在非空单元格,解决方案

    excel中新增行列时报错: 提示:在当前工作表的最后一行或列中,存在非空单元格,所以无法插入新行或新列.

  3. BST and Heap详解

    BST(Binary Search Tree) 基本特点: 二叉树 集合中的数据具有可比较大小的关键码 数据之间满足BST特性 中序遍历可得到一个递增的数据序列(可作为判断一棵二叉树是否是BST的方法 ...

  4. 小谢第7问:js前端如何实现大文件分片上传、上传进度、终止上传以及删除服务器文件?

    文件上传一般有两种方式:文件流上传和base64方式上传,毫无疑问,当进行大文件上传时候,转为base64是不现实的,因此用formData方式结合文件流,直接上传到服务器 本文主要结合vue的来讲解 ...

  5. jchdl - GSL实例 - ComplementTwo(二的补码)

    https://mp.weixin.qq.com/s/Gh2xJJvfg1SlyuayK4LRyQ   二的补码指对二进制数的所有位数整体求补.二进制运算下0,1互为补数,n位二进制数a的补数为2^n ...

  6. Java实现洛谷 P1616 疯狂的采药

    题目背景 此题为NOIP2005普及组第三题的疯狂版. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他 ...

  7. Java实现 蓝桥杯VIP 算法提高 彩票

    算法提高 彩票 时间限制:1.0s 内存限制:256.0MB 问题描述 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1.每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33 ...

  8. Java实现 LeetCode 63 不同路径 II(二)

    63. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在 ...

  9. Java实现 N的阶乘

    import java.util.Scanner; public class n的阶乘 { public static void main(String[] args) { Scanner sc =n ...

  10. java实现求逆序对

    1 问题描述 给定一个随机数数组,求取这个数组中的逆序对总个数.要求时间效率尽可能高. 那么,何为逆序对? 引用自百度百科: 设 A 为一个有 n 个数字的有序集 (n>1),其中所有数字各不相 ...