React Hook useEffect 缺少依赖项:'History'
Posted
技术标签:
【中文标题】React Hook useEffect 缺少依赖项:\'History\'【英文标题】:React Hook useEffect has a missing dependency: 'History'React Hook useEffect 缺少依赖项:'History' 【发布时间】:2021-03-29 19:25:36 【问题描述】:我有这个代码:
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 缺少依赖项:'History'。要么包含它,要么删除依赖数组 react-hooks/exhaustive-deps”
【问题讨论】:
【参考方案1】:您可以将历史记录添加为依赖项,除非更改路线,否则历史记录不会改变。因此,除非数据或历史记录发生更改,否则您的 useEffect 挂钩将不会运行。
useEffect(() =>
if(Data && Data.user)
History.push("/");
, [Data, History])
【讨论】:
我该怎么做 在依赖数组中添加历史记录。 带有“数据”[数据,历史]History.push("/")
不更改历史记录吗?以上是关于React Hook useEffect 缺少依赖项:'History'的主要内容,如果未能解决你的问题,请参考以下文章
React Hook useEffect 缺少依赖项:'props' 由于 useEffect 中有一行
React Hook useEffect 缺少依赖项(没有在 useEffect 中移动函数)
反应 | React Hook useEffect 缺少依赖项