Как вы можете вызвать метод после того, как данные извлекаются с помощью ловушки useAxios - PullRequest
0 голосов
/ 10 октября 2019

Я работаю над проектом с использованием React и response-hooks. Я пытаюсь вызвать метод после того, как сервер вернет ответ. В настоящее время я использую библиотеку Axios-hooks для React, чтобы совершать вызовы:

export const useDataFromServer = (dataObjectId) => {
    return useAxios(
        {
            url: `/data/${dataObjectId}`,
            method: 'GET',
        },
        {
            manual: manual,
        }
    );
}

Я пытаюсь реализовать свой собственный обработчик, чтобы обернуть вызов useAxios, так как я не смог найти какой-либоспособ сделать это из документации useAxios: https://www.npmjs.com/package/axios-hooks:

export function useAxiosWithResponseCallback(config, options, callback) {
    const [isCallbackCalled, setIsCallbackCalled] = useState(false);
    const [axiosState, execute] = useAxios(config, options);

    useEffect(()=>{
        if (axiosState.loading) {
            setIsCallbackCalled(false);
        } else {
            if (!isCallbackCalled) {
                if (callback && typeof callback == 'function') {
                    callback([axiosState, execute]);
                }
                setIsCallbackCalled(true);
            }
        }
    }, [
        axiosState,
        isCallbackCalled,
        callback,
    ]);

    return [
        axiosState,
        execute,
    ];
}

, но я не уверен, будет ли это работать во всех случаях.

Любая помощь с благодарностью!

...