import { Result } from 'ahooks/lib/useRequest/src/types'; import React, { createContext, useContext } from 'react'; import { useRequest } from '../api-client'; export const AsyncDataContext = createContext & { state?: any; setState?: any }>(null); export interface AsyncDataProviderProps { value?: any; request?: any; uid?: string; onSuccess?: (data, params) => void; } export const AsyncDataProvider: React.FC = (props) => { const { value, request, children, ...others } = props; if (value) { return {children}; } const result = useRequest(request, { ...others }); return {children}; }; export const useAsyncData = () => { return useContext(AsyncDataContext); };