export function useHttp (url, requestBody) {
console.log('useHttp执行')
const [query, setQuery] = useState(requestBody);
const [list, setList] = useState([]);
const [total, setTotal] = useState(0)
const [isLoading, setLoading] = useState(false);
useEffect(() => {
const fetchData = async () => {
console.log('请求参数 = ', requestBody)
console.log('请求url = ', url)
let res = new Object();
setLoading(false);
setList(res.dataList)
setTotal(res.total);
}
setLoading(true);
fetchData();
}, [url, query]);
// 深度设置查询参数,立即触发请求
const setDeepQuery = useCallback((payload) => {
let copyQuery= JSON.parse(JSON.stringify(query));
Object.keys(payload).forEach((key) => {
copyQuery = setWith(copyQuery, key, payload[key]);
});
setQuery(copyQuery);
});
// 普通设置查询参数,立即触发请求
const setCommonQuery = useCallback((payload) => {
let copyQuery= JSON.parse(JSON.stringify(query));
setQuery({
...copyQuery,
...payload
});
});
return [list, total, isLoading, query, setCommonQuery, setDeepQuery]
}
使用
const [ ruleList, total, isLoading, query, setCommonQuery, setDeepQuery ] = useDataApi('/omp/industry/asset/inner/alarm/pagequery/v2', requestBody)