【发布时间】:2022-01-02 14:27:03
【问题描述】:
大家好,我收到了这个警告
React Hook useEffect 缺少依赖项:'financialBackground' 和'setFinancialBackground'。包括它们或删除 依赖数组。如果 'setFinancialBackground' 变化太频繁,找到 定义它的父组件并将该定义包装在 useCallback react-hooks/exhaustive-deps
这是我的 useEffect 代码。
useEffect(() => {
if ((pastRevYear, pastRev)) {
let objRev;
objRev = { pastRevYear, pastRev };
let input = [];
const check = { ...financialBackground };
for (let i in check) {
const item = check[i];
if (i === "pastRev") {
for (let j in item) {
const jitem = item[j];
if (jitem) {
input.push(jitem);
}
}
}
}
input = [...input, objRev];
setFinancialBackground({
...financialBackground,
pastRev: input,
});
}
}, [pastRev, pastRevYear]);
我在父组件中定义了这样的 useState。
const [financialBackground, setFinancialBackground] = useState({
fundingMethod: props.data
? props.data.financialBackground.fundingMethod
: "",
otherFundingMethod: props.data
? props.data.financialBackground.otherFundingMethod
: "",
pastRev: props.data ? props.data.financialBackground.pastRev : "",
pastExp: props.data ? props.data.financialBackground.pastExp : "",
});
如果我将 setFinancialBackground 放在依赖数组中,它会多次重新呈现状态。
【问题讨论】:
-
我认为这个警告是不言自明的?
-
你为什么要在
useEffect这样做? -
我想使用 "setFinancialBackground" everyTiime "pastRev" 和 "pastRevYear" 更改而不删除状态中以前的数据。
标签: javascript reactjs use-effect use-state usecallback