При створенні додатків для відстеження спортивних статистик, однією з ключових функціональних можливостей є здатність користувача зберігати вибрані команди та отримувати оновлені дані під час перезавантаження сторінки або повторного відвідування додатку. У цій статті ми розглянемо проблему оновлення властивостей об’єктів, отриманих з API, у реактивному додатку, розробленому з використанням бібліотеки React.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
fetch (/** api data */) .then(res => res.json()) .then(data => { const updatedTeams = data.response.map((team: Team) => { return { ...team, isFavorite: favoriteTeams.includes(team) }; }); setTeams(updatedTeams); }) .catch(err => window.alert("Could not load data. Refresh and try again")); }, [season]); |
Проблема полягає в тому, що після оновлення даних з API стан сторінки не коректно оновлюється, і властивість isFavorite не встановлюється відповідно до умови, що в команду входить до списку улюблених. Незважаючи на те, що стан favoriteTeams містить улюблені команди, ця інформація не відображається на сторінці коректно після перезавантаження.