随手一记,关于今天收到bug
事情是这样的,有一个类似省市区的联动下拉框,获取数据的方法是同一个 例如:getList,默认执行一次getList, 获取所有省的数据,然后选择省传provinceIds 获取市的数据, 选择市传cityIds获取区的数据,然后可能会有这样的判断
async getList(params = {}) {
let res = await request.getDistrictDetailInfo(params);
let areatype;
let areaVl;
let areaName;
if (params.provinceIds) {
areatype = "cityList";
areaVl = "cityRespDtos";
areaName = "cityName";
} else if (params.cityIds) {
areatype = "storeList";
areaVl = "shopRespDtos";
areaName = "name";
}
if (
"0" == res.resultCode &&
res.data &&
Array.isArray(res.data[areaVl]) &&
res.data[areaVl].length
) {
const tempAreaLsit = res.data[areaVl].map((item) => {
return {
...item,
label: item[areaName],
value: item.id,
};
});
this.setState({
[areatype]: tempAreaLsit,
});
}
}
后面需求改成,查区需要带上省的id,导致一直进入if (params.provinceIds) 这里的判断,导致数据展示不出来
所以,以后做逻辑判断还是不要用入参了,入参可能会变化,还是多加一个参数作为触发标记比较好....