不要問我為啥一會兒iOS、一會兒RN、一會兒小程序,我就是一顆螺絲釘,哪里需要往哪里釘??。
踩坑tips記錄:
1、頂部固定的下拉刷新,類似于下圖美團(tuán)。剛開始用的scroll-view,小程序scroll-view不帶下拉刷新,只有Page自帶的滾動有下拉刷新,想了好久都沒想通怎么搞。某天突然開竅。。。頂部就用position:fixed固定布局。下面用Page滾動就可以了

2、地圖組件、canvas、input、textarea、video等都是原生層級最高的組建,有時會阻擋其他控件,尤其是自定義了彈窗,被擋的嚴(yán)嚴(yán)實實。建議彈窗彈出時隱藏,彈窗消失時再顯示出來。
3、小程序目前不支持保存View成圖片的功能,想要保存圖片只能畫canvas再轉(zhuǎn)圖片。。。麻煩。。。小技巧,把寫死數(shù)據(jù)不變的東西先采取截圖的手段保存下來(尤其大段文字,canvas畫的話換行處理能把你換吐血),然后在canvas上以圖片的形式畫上去,然后只需要再把數(shù)據(jù)會變動的東西畫上去就好了
4、input組件的動態(tài)綁定value時,不要用bindinput設(shè)置value值,而是用bindblur
5、自定義彈窗時,背景加上catchtouchmove綁定一個空函數(shù)來防止?jié)L動穿透
6、獲取 wx.getUserInfo 接口后續(xù)將不再出現(xiàn)授權(quán)彈窗,請注意升級,沒有權(quán)限時要顯示一個button,來讓用戶授權(quán)
//js
WxHelper.getUserInfo()
.then(({ nickName, avatarUrl }) => {
this.setData({
nickName: nickName
});
})
.catch(res => {
// 用戶未授權(quán),顯示授權(quán)按鈕
});
//wxss
<button class="tag-button" open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">授權(quán)</button>
7、wxml里如果有很多狀態(tài)需要判斷,可以創(chuàng)建一個wxs文件,類js語法來處理,在wxml里只需要引入就可以使用了,具體看文檔。注意,語法類js但不是完全相同。比如let不支持,要用var,而且寫錯了console不會報錯,而是頁面數(shù)據(jù)加載不出來。。。當(dāng)時我找了好久才發(fā)現(xiàn)是這個問題
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/
8、圖標(biāo)改填充色
方法一:使用字體圖標(biāo)
方法二:圖標(biāo)必須白底黑圖
...
background: url('data:image/png;base64,xxxxxxxxx') center center no-repeat, linear-gradient(#2fcc85, #2fcc85);
background-blend-mode: lighten;
...
9、頁面反向傳值(頁面A跳轉(zhuǎn)頁面B,頁面B返回頁面A時把值傳給 A)
方法一:值保存在globalData里
方法二:getCurrentPages 獲取當(dāng)前頁面棧,直接操作頁面A設(shè)置數(shù)據(jù)
// B頁面需要回傳值時
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2]; // 獲取A頁面
prevPage.setData({
invoiceItem: newInvoiceItem
});
10、小程序支持字體圖標(biāo)
https://blog.csdn.net/nongweiyilady/article/details/74244362