百度地图获取当前省市区,市、区返回的可能为空

由于后台的接口里面,省、市、区字段是必填的,而刚开始并没有意识到百度地图返回的当前位置的市、区可能存在为空的情况,测试环境也没测试此种场景,导致线上问题。所以此处记录一下,恐别的同事踩坑。
// 获取省市区及详细地址
detailAddress(){
    let that=this;
    let gc = new BMap.Geocoder();
    gc.getLocation(that.mapPoint, function(rs){
        that.detailedAddress = rs.address;
        that.addressComponents = rs.addressComponents;
    })
}
对此场景前端的一些兼容处理。先判断市有没有,没有toast提示。如果区没有,就用市的数据
if (!this.addressComponents.city) {
     uni.showToast({
                title: '请输入市',
                icon: 'none',
                duration: 3000
                });
                return;
}
const params = {
        province: this.addressComponents.province,
        city: this.addressComponents.city,
        area: this.addressComponents.district?this.addressComponents.district:this.addressComponents.city
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容