微信小程序踩坑之前端问题处理篇
近期完成了一个小程序,自己做的前后端开发、真是惨哭我了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:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...
- 微信小程序踩坑记
1:微信小程序之去掉横向滑动滚动条 /** 去除横向滚动条 */ ::-webkit-scrollbar { width: 0; height: 0; color: transparent; } 2: ...
- 微信小程序踩坑- tabBar.list[3].selectedIconPath 大小超过 40kb
重新启动微信小程序编辑器的时候遇到了这样的一个问题: tabBar.list[3].selectedIconPath 大小超过 40kb 微信小程序开发的过程之中总会出现这样或者那样的错误,需要我们耐 ...
- 微信小程序踩坑
微信小程序自定义属性data-xx使用注意事项 data-xx采用驼峰式命名时,数据传递打印显示(以jxsName与jxsname打印显示对比) data-xx全小写命名时,数据传递打印显示
- 微信小程序踩坑日记1——调用微信授权窗口
0. 引言 微信小程序为了优化用户体验,取消了在进入小程序时立马出现授权窗口.需要用户主动点击按钮,触发授权窗口. 那么,在我实践过程中,出现了以下问题. . 无法弹出授权窗口 . 希望在用户已经授权 ...
- 微信小程序踩坑之一[thist]使用技巧
刚上手小程序 时,习惯把this当成jquery中的$(this)来用,实际上这两个还是有差别的 在页面方法中调用其他方法,一般是用this.function(),直接调用小程序 的方法或函数则是用w ...
- 微信小程序踩坑之获取手机号
最近在开发小程序遇到这样一个问题, 在用户点击授权后去解密手机号时会出现第一次失败,第二次成功的情况.研究了一段时间,终于找到比较合理的解决方案,在此记录并总结一下,希望可以帮助到大家. 需求描述 在 ...
- 微信小程序踩坑之一[wx.request]请求模式
最近在做小程序时,使用wx.request()方法请求时, 当使传输string类型时,一定要声明method请求模式为post,否则会一直报错,而不声明时默认为get, 已填坑 =,= wx.req ...
- 微信小程序踩坑之一【weui-wxss-master单选按钮图标修改思路】
小程序原生所带的weui框架做小程序UI实在太方便了,但是他的一些细微变化也是让开发中碰到不少头疼的问题 一直以来单选多选的美化都是设计师重点表达的地方之一 而weui-wxss-master中的单选 ...
随机推荐
- [书籍分享]0-008.商业模式新生代[Business Model Generation]
封面 内容简介 <商业模式新生代>内容简介:当你愉快的看完第一章:商业模式画布,赫然发现这些构成要素全都交织成一幅清晰的图像在脑海中呈现,它们如何互相影响.如何交互作用全都历历在目.利用商 ...
- 用python编写测试脚本
def f(n): """ >>>f(1) 1用例 >>>f(2) 2用例 ...... >>>f(n) n用例 & ...
- R语言入门一
一.数据分析相关概念 数据:是指对事物或对象各方面进行描述的符号,包括事物的基本属性.特征.性质.状态.相互关系等:比如描述人的数据有:身高.年龄.性别.兴趣.性格.婚姻状态等等. 分析:是指把事物或 ...
- python脚本:在Ubuntu16系统上基于xtrabackup2.4和mysql5.7实现数据库数据的自动化备份和恢复,亲测有效!
1 安装教程 官网安装教程:https://www.percona.com/doc/percona-xtrabackup/2.4/installation/apt_repo.html -------- ...
- 【Linux】ntp服务-时间同步
ntp简易安装与时间同步 yum -y install ntp ntpdate //安装ntp服务 ntpdate cn.pool.ntp.org //更新时间 hwclock --systohc / ...
- python3 pymysql查询结果包含字段名
python2使用MySQLdb模块进行连接mysql数据库进行操作:python3则使用pymysql模块进行连接mysql数据库进行操作:两者在语法上有稍微的差别,其中就包括查询结果包含字段名,具 ...
- Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
试题 算法提高 Substrings 问题描述 You are given a number of case-sensitive strings of alphabetic characters, f ...
- (Java实现) 光荣的梦想
光荣的梦想 Time Limit:10000MS Memory Limit:65536K Total Submit:110 Accepted:45 Description Prince对他在这片大陆上 ...
- Java实现 蓝桥杯 图书排列(全排列)
标题:图书排列 将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置. 请计算一共有多少种不同的排列方案. 注意,需要提交的是一个整数,不要填写任何多余的内容. 9 9 10 9 ...
- Java实现 LeetCode 174 地下城游戏
174. 地下城游戏 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来 ...