关于这种级联的下拉列表值请求,通常会有一个异步的问题,可以这样:直接用state的数据push进去,再调用setState(val => […val])保存一下自己的值,这样就可以了。
/** 得到下拉列表值 */
const getDictList = async () => {
service.getAAAAA().then((res: any) => {
setShipperExpressList(res);
if (res && res.length) {
let arr: any = [];
res.map(async (item: any) => {
const val = item.value.toUpperCase();
await getDict(`TYPE_${
val}`, false).then(
(result: any) => {
// ---------------------------------
state.push(...result);
setState((val: any) => [...val]);
},
);
});
}
});
};