2018/5/22 0:00:00
来源:不详
作者:未知
这篇文章针对微信商城小程序开发时经常遇到的问题,这篇说一下我们在此次开发商城类的小程序时遇到的一些需要注意的小问题!
⒈收货地址
这个问题,想起来就醉的不行!在开始静态布局的时候,费了大半天劲,把整个选择地址,创建地址(地图选址),重新编辑修改地址,删除地址的页面都写好,然后在手机预览。点一下选择收货地址,蹦出来两套页面啊!一套就是我写的,另一套是……
当初是死活也没想到小程序自带的 wx.chooseAdress 是直接调用微信底层的方法的,而且所有功能应有尽有。真是欲哭无泪啊!!!
分析下发生这种事情的原因:首先刚开始接触小程序,对一些方法在不了解的情况下就开始入手写代码,也算是个大忌了;其次这个功能在较低版本的开发者工具上面是预览不出该效果的,只能在手机预览;再次臣妾实在是没想到啊。
就当是个教训了,在此提醒各位新手一定要避开这个坑!
⒉小程序最多只能跳5栈
在开发小程序前一定要熟知业务流程,尽量把跳转页面控制在5栈之内。详情参考 API 。
如果遇到一些比较复杂的业务流程,无法控制在5栈之内,请参考某大神的系列文章
⒊页面传值
这个比较简单些,用法跟html+javascript类似。方法有多种,我只说我用到的两种:通过链接传值和本地存储传值!
链接传值:
wxml 代码
-
<navigator url="../orderForm/orderForm?form_id=1">
在接收页面的 js 中写
-
onLoad:function(options){
-
this.setData({
-
Form_id:options.form_id
-
})
-
}
这样就接收到传过来的值了。
本地存储传值: 传值页面的 js 中写
-
// 把选中的商品 id(cartIdString)放入本地存储 供支付页面使用
-
wx.setStorage({
-
key: 'cartIdString',
-
data: cartIdString,
-
success:function(res){
-
console.log('sucess')
-
}
-
})
-
// 把选中的商品 总价 放入本地存储 供支付页面使用
-
wx.setStorage({
-
key: 'total',
-
data: that.data.total,
-
success: function (res) {
-
console.log('sucess')
-
}
-
})
接收页面的 js 中写
-
onReady:function(e){
-
var that = this;
-
// 给后台返回购物车页面中被选中商品的 id
-
wx.getStorage({
-
key: 'cartIdString',
-
success: function (res) {
-
console.log(res.data)
-
}
-
})
-
// 返回购物车页面中被选中商品的 总价
-
wx.getStorage({
-
key: 'total',
-
success: function (res) {
-
that.setData({
-
total: res.data
-
})
-
}
-
})
⒋request请求数量 整个小程序在运行时,同时存在的 request 请求数量限制在5个。解决办法是在页面出栈时将该页面的所有 request 请求全部销毁。 先给每一个 request 请求赋给一个变量,然后在 onUnload 事件中用 requestTask.abort() 方法将其销毁。
js 代码
-
onLoad: function () {
-
var that = this;
-
var a = wx.request({
-
url: 'http://192.168.200.146:8080/trwl/xcx/selcar',
-
method: 'GET',
-
dataType: 'json',
-
success: function (res) {
-
that.setData({
-
carts:res.data
-
})
-
that.sum()
-
},
-
fail: function (res) { },
-
complete: function (res) { },
-
})
-
},
-
//将 request 进行销毁
-
onUnload: function () {
-
requestTask.abort();
-
a.abort();
-
}
5.往后台传求组时不能直接以Array的格式传,需要将其转换成字符串格式 代码如下:
-
var cartIdArray = [];
-
var cartIdString = '';
-
var carts = this.data.carts;
-
for(var i=0;i<carts.length;i++){
-
if(carts[i].ch){
-
cartIdArray.push(this.data.carts[i].cartId)
-
}
-
}
-
for (var i = 0; i < cartIdArray.length; i++) {
-
cartIdString += cartIdArray[i] + ",";
-
}
【本站声明】
1、本站文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系。
2、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。
KESION 科汛软件
KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!