微信小程序的坑
- 小程序渲染层内核不一致导致某些 api 不可用
数组的扁平化方法 Array.prototype.flat() 不支持
解决: 重新定义此方法到数组对象的原型链上
/**
* 2019年8月16日
* 给数组添加flat方法
*/
addMethodToArray() {
Array.prototype.flat = function(depth) {
// let arr = this.value; //读不到
let arr = this; //数组本身
let res = [],
depthArg = depth || 1,
depthNum = 0,
flatMap = arr => {
arr.map((element, index, array) => {
if (Object.prototype.toString.call(element).slice(8, -1) === 'Array') {
if (depthNum < depthArg) {
depthNum++;
flatMap(element);
} else {
res.push(element);
}
} else {
res.push(element);
if (index === array.length - 1) depthNum = 0;
}
});
};
flatMap(arr);
return res;
};
},
-
小程序 require 引入包的问题
参考链接
已知:有两个 js 包, atest.js 和 btest.js,在 atest.js 中用 require 引入 btest.js 时,因为 btest 还没有生成,此时引入的 btest 是个空对象
解决: -
微信小程序 从 A 跳到 B 页面, 在 B 页面可以使用 A 的方法,通过 wx.navigateBack()返回 A 页面
问题: 从 A 页面通过 wx.navigateTo 跳到 B 页面后, B 做完操作后返回 A,并且 A 页面等着 B 的操作结果
解决://B页面的JS let pages = getCurrentPages(); let prevPage = pages[pages.length - 2]; //获取到A页面 prevPage.doItemSelect({ selectedClassIndex, selectedItemIndex, isInit: false }); //在B调用A的方法
-
小程序获取手机号第一次失败,第二次成功的问题
-
三分钟创建 GitHub 博客
-
小程序的根路径探究,是从 pages 开始的吗?
-
小程序中的setData()指定set对象
this.setData({
[‘timePickerColumns[’+1+’]’]: timeArr
}); -
小程序跨页面调用this
loading.show.call(app.globalData.currPage); //获取当前页面的this this === app.globalData.currPage;