比如一个数据列表,dataList,需要好几个接口来拼装数据,所有接口完成后,再吐一份数据出去。
另外,希望使用的时候可以有一个回调函数。接口请求成功,回调一下这个函数。暂时用参数传入。
定义
export const useDataList = (callback)=>{
const [dataList, setDataList]= useState();
useEffect(()=>{
Promise.all([request1, request2, request3])
.then((res)=>{
const dataList = filter(res);
setDataList(dataList);
callback();
})
},[])
return {dataList};
}
使用
const {dataList} = useDataList(callback);
const callback = ()=>{
}
各位这种需要回调函数的,要怎么写,只能参数传入吗?
不用纠结这个场景,这个场景只是例子
都讲了 “回调” 二字,肯定还是传入一个回调参数更好,因为回调函数的内容和函数参数一样,是外部决定的,不是当前自定义hook内部逻辑。建议名称可以更具象化,比如 ‘onSuccess’