-- 创造无限可能

百度小程序异常:宫格组件-grid无法使用

2022-04-03 21:43:14
714 人浏览 0 人点赞
有用,点赞支持一下

场景:百度小程序使用宫格组件没有效果
处理流程

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”的使用