前言: 這是一份開(kāi)發(fā)小程序過(guò)程遇到的一些問(wèn)題記錄,以后有類型的坑都會(huì)記錄在這里
- scroll-view 置頂, 給設(shè)置scroll-top為0無(wú)效問(wèn)題?
解決方案: 不觸發(fā)置頂問(wèn)題,需要給scroll-top一個(gè)設(shè)置接近0的隨機(jī)數(shù),Math.random()
- scroll-view綁定bindscrolltolower沒(méi)有觸發(fā)問(wèn)題?
解決方案: 通過(guò)獲取系統(tǒng)信息wx.getSystemInfoSync()拿到屏幕的高度,然后減去其他組件占位的高度, 得到scroll-view容器的高度, 最后給scroll-view的style設(shè)置容器的高度才能生效
- 用wx.createSelectorQuery().select(id).fields({computedStyle: ['margin', 'backgroundColor', 'width', 'height']}),獲取高度,如果設(shè)置了padding得到的值不準(zhǔn)確問(wèn)題?
解決方案: 給容器添加box-sizing: border-box;
注意在使用taro, 對(duì)webpack配置defineConstants全局變量,不能在代碼中使用相同和全局變量相同的命令變量或者函數(shù)中的形成
小程序中使用request,如果url直接帶上中文,在部分手機(jī)會(huì)導(dǎo)致中文編號(hào)異常請(qǐng)求失敗
解決不要直接query拼接到url中,把query傳遞到request對(duì)應(yīng)的data中,最好在header中添加
'Content-Type': 'application/json; charset=utf-8'
- Taro v1.3.0-beta.3開(kāi)發(fā)微信插件,使用'@tarojs/async-await'導(dǎo)致
regeneratorRuntime is not defined報(bào)錯(cuò)
在載入@tarojs/async-await的地方添加一個(gè)聲明
const regeneratorRuntime = global.regeneratorRuntime;
- 升級(jí)Taro為T(mén)aro v1.3.0-beta.3,開(kāi)發(fā)微信插件,微信開(kāi)發(fā)工具報(bào)
VM2140:5 未找到入口 app.json 文件,或者文件讀取失敗,請(qǐng)檢查后重新編譯。
解決方法: 修改project.config.json中的miniprogramRoot的值為miniprogram/weapp/
- 使用
ref無(wú)法獲取自組件的問(wèn)題,描述在Taro的componentWillMount中調(diào)用自組件的方法,無(wú)法獲取自組件的問(wèn)題
解決方法: 在
componentDidMount中調(diào)用自組件的方法,因?yàn)閏omponentWillMount的時(shí)候還沒(méi)有加載完DOM
- 當(dāng)前最外層容器使用
width: 100vw;和padding:20px;的時(shí)候, 子容器設(shè)置'width:100%'會(huì)導(dǎo)致子容器的寬度為100vw
解決方法: 外層容器使用width:100%;