我首先认为这是一个误报,但是直到现在我仍然不知道错误为什么有用。
在react-hooks/exhaustive-deps
中使用外部props函数时,如何使useEffect
错误变得没有意义呢?
interface props {
someExternalPropFunction: any;
}
const App: React.FC<props> = ({ someExternalPropFunction }) => {
const [formValues, setFormValues] = React.useState<initialStateProps>({
eventInfo: {
name: "",
location: ""
}
});
React.useEffect(() => {
someExternalPropFunction(formValues);
}, [formValues]); //what is going on here?
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
</div>
);
};
答案 0 :(得分:1)
由于道具可能会更改,因此dep列表需要someExternalPropFunction
。
React.useEffect(() => {
someExternalPropFunction(formValues);
}, [someExternalPropFunction, formValues]); // now it is fixed