场景:百度小程序使用宫格组件没有效果
处理流程
1、检查uniapp其他组件是否正常,正常
2、分析uni-grid源码,正常
3、分析uni-grid-item源码,有问题
// #ifdef H5
mounted() {
this.grid._getSize(width => {
this.width = width;
});
},
// #endif
// #ifndef H5
onReady() {
this.grid._getSize(width => {
this.width = width;
});
},
// #endif
methods: {
_onClick() {
this.grid.change({
detail: {
index: this.index
}
});
}
}
该部分代码,只在h5下生效,百度小程序下,没有生效,导致宫格元素获取不到宽度,导致不显示,修改如下
// #ifdef H5 | MP-BAIDU
mounted() {
this.grid._getSize(width => {
this.width = width;
});
},
// #endif
// #ifndef H5 | MP-BAIDU
onReady() {
this.grid._getSize(width => {
this.width = width;
});
},
总结
1、中途,有考虑过自己不适用组件来完成。但被否决了,原因觉得是自己做成本一样高,如果其他地方也用到了这个组件,那么又得重新写一遍
2、在分析问题的时候,没有考虑到一个问题,就是这个组件在微信小程序下是正常的,而其他其他uniapp组件也是正常的情况下,很容易就可以分析出,是这个组件内缺少对百度小程序的支持,应该很容易联想到“ifdef”的使用