一、Taro小程序中使用moment库,在小程序中运行正常,但是编译成H5导致moment引入报错
问题描述:小程序编译成H5运行时,如果某个tsx文件使用了moment三方库,则会报错,报错问题如下图:
原因分析:详见www.yerenwz.com/5262.html
解决方法:Taro项目中的config文件夹的dev.js文件中进行如下配置:
module.exports = {
env: {
NODE_ENV: '"development"',
},
defineConstants: {},
isWatch: true,
mini: {},
h5: {
devServer: {
proxy: { // 代理配置
...
}
},
webpackChain(chain, webpack){
chain.resolve.mainFields.clear();
chain.merge({
resolve: {
mainFields: ['main:h5', 'browser', 'module', 'main', 'jsnext:main']
}
});
return chain;
}
},
};
二、小程序中使用伪元素失效
问题描述:小程序中使用伪元素如:last-child、:first-child等失效; 解决方式:在写伪元素样式时包裹的容器中类型后面加上标签名,具体如下:
<view className={"viewContainer"}>
<text>第一个</text>
<text>第二个</text>
<text>第三个</text>
<text>第四个</text>
<text>第五个</text>
</view>
// 样式文件
.viewConatiner{
color: blue;
}
.viewContainer text:last-child{
color: red;
}
三、小程序自定义tabbar会导致页面底部被tabbar遮挡
问题描述:使用自定义的tabbar时,会导致页面底部有一个部分内容被tabbar遮挡;
出现原因:自定义tabbar设置的层级较高,所以会导致界面地图的一部分内容被遮挡,如果降低层级的话,又会出现因层级不够导致tabbar无法显示。
解决方式:在小程序底部增加一个view标签,并且设置高度为tabbar的高度,宽度为100%,具体代码如下:
<view style={{width: "100%", height: "calc(60px + env(safe-area-inset-bottom) / 2)"}} />
其中高度中env(safe-area-inset-bootm)代表IOS手机底部黑线的距离。
四、小程序自定义tabbar的时候会出现两个tabbar重叠的情况
问题描述:使用自定义tabbar时会出现两个tabbar重叠的情况。
出现原因:是因为使用了和元素包裹的原因,按照官方推荐如果使用了这个两个标签会出现两个tabbar重叠的情况;
解决方式:将原有的cover-view和cover-image换成View和Image标签即可,但是需要注意tabbar层级问题。