Open 981377660LMT opened 3 months ago
把闭包想象成一个隐藏的类,类就是作用域
解决闭包问题: 本质是一个不变的函数引用了一个不变的值,因此两种方案:
// 解决方案1-1
const { data, loading, refresh } = useService(() => getFlowVersionList({ page, id: flowId }))
// 解决方案1-2
const f = useCallback(() => {
return getFlowVersionList({ page, id: flowId });
}, [page, flowId]);
const { data, loading, refresh } = useService(f);
// 解决方案2-1
const pageRef = useRef(page)
const serviceRef = useRef(() => getFlowVersionList({ page: pageRef.current, id: flowId }))
// 解决方案2-2
const { data, loading, refresh } = useService(service)
fresh({ page, id: flowId })