component-hook-factories¶
Проверяет функции высшего порядка, которые объявляют вложенные компоненты или хуки. Компоненты и хуки нужно объявлять на уровне модуля.
Подробности правила¶
Если объявлять компоненты или хуки внутри других функций, при каждом вызове создаётся новый экземпляр. React считает каждый из них совершенно другим компонентом, уничтожает и заново создаёт всё дерево компонентов, теряет всё состояние и получает проблемы с производительностью.
Неверно¶
Примеры неверного кода для этого правила:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Верно¶
Примеры верного кода для этого правила:
1 2 3 4 5 6 7 8 9 | |
Устранение неполадок¶
Нужно динамическое поведение компонента¶
Может показаться, что фабрика нужна, чтобы создавать настроенные компоненты:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Вместо этого передавайте JSX как дочерние элементы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Источник — https://react.dev/reference/eslint-plugin-react-hooks/lints/component-hook-factories