https://codesandbox.io/s/react-hooks-usefetch-cniul
Пожалуйста, см. Выше URL для очень упрощенной версии моего кода.
Я хочу иметь возможность получать данные из API с помощью моего хука, в течение интервала (в основном опрашивают конечную точку для данных).
Я хочу просто иметь возможность вызывать что-то вроде refetch
(как я показал в коде в качестве комментария), что по сути просто вызовет fetchData
снова и обновите состояние соответствующим ответом.
Какой лучший способ сделать это? Единственный способ, о котором я могу подумать, - это добавить в ловушку переменную checker
, которая была бы своего рода uuid (возможно Math.random()
), вернуть setChecker
как refetch
и просто добавить checker
кмассив как 2-й аргумент useEffect для управления перерисовкой. Поэтому, когда вы вызываете refetch
, он вызывает setChecker
, который обновляет случайное число (checker
), а затем функция запускается снова.
Очевидно, это звучит «хакерски», должен быть более хороший способ сделатьэто - есть идеи?