У меня есть компонент, который выглядит следующим образом:
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
.Либо включите их, либо удалите массив зависимостей.(response-hooks / исчерпывающе-deps) eslint
Я знаю, что id
и onChange
не изменятся, поэтому добавление их в массив зависимостей кажется ненужным.Но правило не является предупреждением, это четкая инструкция что-то делать.
Является ли правило ESLint:
1) Слишком осторожным и немного глупым в этом случае, поэтому безопасноигнорировать?
2) Подчеркнуть передовой опыт - т.е. минимизировать неожиданные ошибки, которые могут возникнуть в будущем, если, например, изменения в родительских компонентах означают, что id изменится в какой-то момент в будущем?
3) Показывает реальную / возможную проблему с кодом в текущем виде?