React · Middle · Запитання 54 з 75
Чому цей ефект перезапускається на кожному рендері, хоч options виглядає однаково?
const options = { roomId, serverUrl };
useEffect(() => connect(options), [options]);- ✓Правильна відповідь: На кожному рендері створюється новий об'єкт, тому залежність завжди інша
- 2Ефекти не можуть залежати від об'єктів
- 3
serverUrlбракує у списку залежностей
Пояснення
Створіть об'єкт усередині ефекту й залежте від примітивів ([roomId, serverUrl]) або мемоізуйте його. Об'єкти й функції порівнюються за посиланням.