У меня есть этот код:
import {useContext, useEffect, useState} from 'react';
import {useHistory} from "react-router-dom";
import {MasterContext} from "../../Context/MasterProvider";
import LoginActions from "../../Context/Actions/LoginActions";
const useLoginForm = () => {
const History = useHistory();
const [login, setLogin] = useState({});
const {AuthState: {Authentication: {Loading, Data, Error}}, AuthDispatch}=useContext(MasterContext);
const FormData = (event) => {
const { target: { value, name } } = event;
setLogin({...login, [name]: value});
};
const FormValid =
!login.email?.length ||
!login.password?.length;
const FormSubmit = () => {
LoginActions(login)(AuthDispatch);
}
useEffect(() => {
if (Data) {
if (Data.user) {
History.push("/");
}
}
}, [Data])
return {login, FormData, FormValid, FormSubmit, Loading, Error, Data};
}
export default useLoginForm;
Работает нормально, но с предупреждениями. «React Hook useEffect имеет отсутствующую зависимость:« История ». Либо включите ее, либо удалите массив зависимостей react-hooks/exhaustive-deps»





Вы можете добавить историю в качестве зависимости, история не изменится, если маршрут не будет изменен. Таким образом, ваш хук useEffect не будет работать, если данные или история не будут изменены.
useEffect(() => {
if (Data && Data.user) {
History.push("/");
}
}, [Data, History])
добавить историю в массив зависимостей.
с «Данные» [Данные, История]
Разве History.push("/") не меняет историю?
Как мне это сделать