React · Senior · Запитання 29 з 75
Коли допустимо викликати setState просто під час рендеру?
- ✓Правильна відповідь: Щоб скоригувати state у разі зміни prop, з умовою-захистом від циклу
- 2Ніколи: це завжди призводить до помилки «Too many re-renders»
- 3Завжди, коли треба синхронізувати будь-який state з новими props
Пояснення
Патерн «зберігати інформацію з попередніх рендерів»: if (items !== prevItems) { setPrevItems(items); setSelection(null); }. React одразу перезапустить рендер компонента, не відмальовуючи проміжний стан. Це краще, ніж useEffect, але ще краще - key або обчислення під час рендеру.