我有一个看起来像这样的组件:
const MyComponent = props => {
const { checked, onChange, id } = props;
const [isChecked, setChecked] = useState(false);
useEffect(() => {
onChange && onChange({ isChecked: !!checked, id });
setChecked(checked);
}, [checked]);
const childProps = {
id,
isChecked
};
return <ChildComponent {...childProps} />;
};
详尽的 lint 规则并不令人满意:
React Hook useEffect 缺少依赖项:
id
和onChange
. 要么包含它们,要么删除依赖数组。(react-hooks/exhaustive-deps)eslint
我知道id
并且onChange
不会改变,所以将它们添加到依赖数组似乎是不必要的。但这条规则不是警告,而是明确的指示去做某事。
是 ESLint 规则:
1)在这种情况下过于谨慎和有点愚蠢,那么可以忽略吗?
2) 强调最佳实践——例如,如果父组件的更改意味着 id在将来的某个时间点会发生变化,则尽量减少将来可能发生的意外错误?
3) 显示当前代码的实际/可能问题?