最佳答案
我很难理解“详尽深度”棉绒规则。
下面是一个带有 lint 问题的简单 React 组件:
const MyCustomComponent = ({onChange}) => {
const [value, setValue] = useState('');
useEffect(() => {
onChange(value);
}, [value]);
return (
<input
value={value}
type='text'
onChange={(event) => setValue(event.target.value)}>
</input>
)
}
它要求我将 onChange
添加到 useEffect
依赖项数组中。但在我的理解 onChange
将永远不会改变,所以它不应该存在。
通常我是这样处理的:
const MyCustomComponent = ({onChange}) => {
const [value, setValue] = useState('');
const handleChange = (event) => {
setValue(event.target.value);
onChange(event.target.value)
}
return (
<input
value={value}
type='text'
onChange={handleChange}>
</input>
)
}
为什么是线头? 对于第一个例子的线头规则有什么明确的解释吗?
或者我不应该在这里使用 useEffect
? (我是一个有钩子的菜鸟)