遇到的问题: 列表页面的搜索组件是通过数据传输过去的,只能set一次,如果数据发生变化时,重新set,里面通过接口请求的数据无法重新请求,重新传过去的数据也不会重新更新,所以需要在业务层把传输的数据整理好一次传输过去,多个接口请求时就需要接口都请求成功再set数据,所以需要用Prromise.all实现。
import axiosInstance from '@/pages/utils/request'
const conditionSearch = () => {
const result1 = new Promise((resolve, reject) => {
axiosInstance({
url: '/ubs-nlcrs/anncCommon/getList1',
method: 'GET',
params: {},
}).then((res) => {
resolve(res);
}).catch((err) => {
reject(err);
})
})
const result2 = new Promise((resolve, reject) => {
axiosInstance({
url: '/ubs-nlcrs/anncCommon/getList2',
method: 'GET',
params: {},
}).then((res) => {
resolve(res);
}).catch((err) => {
reject(err);
})
})
const result3 = new Promise((resolve, reject) => {
axiosInstance({
url: '/ubs-nlcrs/anncCommon/getList3',
method: 'GET',
params: {},
}).then((res) => {
resolve(res);
}).catch((err) => {
reject(err);
})
})
Promise.all([result1, result2, result3]).then((values) => {
const list1 = values[0];
const list2 = values[1];
const list3 = values[2];
//对list1数据处理
{......}
//对list2数据处理
{......}
//对list3数据处理
{......}
//最后set一次
setFormConfigs(...)
})
}