J'ai un composant qui ressemble à ceci :
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} />;
};
La règle du lint exhaustive-deps n'est pas heureuse :
React Hook useEffect a des dépendances manquantes :
id
yonChange
. Il faut soit les inclure, soit supprimer le tableau de dépendances. (react-hooks/exhaustive-deps)eslint
Je sais que id
y onChange
ne vont pas changer, donc les ajouter au tableau des dépendances semble inutile. Mais la règle n'est pas un avertissement, c'est une instruction claire pour faire quelque chose.
C'est la règle ESLint :
1) Trop prudent et un peu stupide dans ce cas, on peut donc l'ignorer ?
2) Mettre en évidence les meilleures pratiques - c'est-à-dire minimiser les bogues inattendus qui pourraient survenir à l'avenir si, par exemple, des changements dans les composants parents signifient que l'id sera changer à un moment donné dans le futur ?
3) Montrer un problème réel/possible avec le code tel qu'il est actuellement ?