Я пытаюсь получить горячую перезагрузку для работы с реагировать 16.9.0
и реагировать-редуксом 7.1.1
.
Это мой код, где я хочу загрузку данных (обратный вызов в useEffect()
)вызывается только один раз:
function Sidebar() {
const dispatch = useCallback(useDispatch(), []);
useEffect(() => {
console.info('useEffect');
dispatch(loadFields());
}, [dispatch]);
...
}
Несмотря на использование useCallback()
для запоминания функции, когда я сохраняю изменение в другом файле JS, обратный вызов в useEffect()
вызывается снова, перезагружая поля.
Если я изменил зависимость функции useEffect()
с [dispatch]
на []
, то она работает так, как я хочу, и обратный вызов в useEffect()
не вызывает , а не вызываетсяна горячую перезагрузку. Но если я сделаю это, рекомендованный React Eslint будет жаловаться, что я не включил зависимость dispatch
.
Как сделать линтер счастливым, при этом горячая перезагрузка для правильной работы с useDispatch()
?
Другие симптомы:
- Использование статического
['anything']
также приводит к горячей перезагрузке не работает;что странно, потому что оно должно быть эквивалентно []
.