выдается warning "React Hook useEffect has a missing dependency: 'query'."
При попытке добавлении в dependency query, начинается небольшой dos сервера, что делать?
const query = useQuery()
useEffect(() => {
fetch(`...{query.get('...')}`)
.then(value => value.json())
.then(json => setHouse(json))
}, [])
хук useQuery из react-query?
да
upd, нет, https://reactrouter.com/web/example/query-parameters import {useLocation} from "react-router-dom"; export function useQuery() { return new URLSearchParams(useLocation().search); }
Мне кажется в данном случае можно пренебречь советами реакта, если значение query не изменяется и не будет изменяться нету смысла добавлять его в список зависимостей
Игнорирование таких warning, считается нормальной практикой?
Нет, я бы посоветовал вынести ваш фетч в отдельную функцию, примерно так const fetchSomething = () => { .... } и useEffect будет такой useEffect(() => { fetchSomething() }, [fetchSomething])
Ну ещё наверное стоит использовать функцию фетча через useCallback для мемоизации
Данная конструкция не решает проблему, многократного вызова fetch const query = useQuery() const fetchSomething = useCallback(() => { fetch(`...{query.get('...')}`) .then(value => value.json()) .then(json => setHouse(json)) }, [query]) useEffect(() => { fetchSomething() }, [fetchSomething])
query одинаковый объект между рендерами ? Нет, судя по new
спасибо, покопаю в данном направлении
Обсуждают сегодня