Хук состояния вызывается внутри условия
function UserCard({ userId, isExpanded }) {
const [name, setName] = useState('');
if (isExpanded) {
const [details, setDetails] = useState(null);
// загрузка и отображение подробностей
}
// ...
}
Что не так с этим кодом?
- Ошибки нет: хук внутри условия допустим, потому что React привязывает состояние к имени переменной; запрещены только хуки в циклах.
- Хук вызван условно: React сопоставляет состояния по порядку вызовов, а он меняется между рендерами — будет ошибка или чужое значение.
- Проблема только в производительности: лишний вызов состояния замедляет рендер раскрытой карточки.
- В одном компоненте нельзя объявлять два состояния — для этого существует редьюсер.
