Хук useAsync() не вызывается при перезагрузке компонента

У меня есть основной компонент MainComp, который вызывает дочерний компонент ChildComp следующим образом:

<ChildComp data = {data}>

Это ЧайлдКомп:

export const ChildComp = (props: any) => {
    console.info("#1");
    const { value, loading, error } = useAsync(async (): Promise<any> => {  
        console.info("#2");
        const response = await fetch(<some url>);
        const data = await response.json();
        return data;
    }, []);
}

if (loading) {
    // return
} else if (error) {
    // return 
}

return value;

Когда дочерний компонент вызывается изначально при загрузке страницы, все работает правильно. Однако при изменении свойств дочернего компонента компонент перезагружается, но хук useAsync не вызывается. В результате на консоли печатается номер 1, но не номер 2.

Любая идея, как я могу снова вызвать useAsync(), когда компонент перезагружается, потому что реквизиты меняются? URL-адрес внутри fetch изменяется в соответствии с передаваемыми реквизитами и, следовательно, должен вызываться каждый раз при изменении.

Спасибо за помощь!

Добавить URL-адрес в массив зависимостей?

RubenSmn 30.03.2023 20:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно указать правильные зависимости для хука useAsync():

 const { value, loading, error } = useAsync(async (): Promise<any> => {  
    // ...
 }, []); // <---- Indicate here the props/url upon which change you want to re-fetch data

Другие вопросы по теме