Эта ошибка не имеет ничего общего с массивом зависимостей эффекта. Проблема в том, что item.country не уникален в этих данных. json включает 7 записей, где country
=== "Total:"
.
Пара возможностей:
1) Отфильтруйте дубликаты. Лучше всего, если вам не нужны эти записи «Всего:».
if (response.status === 200) {
const newCountriesArray = [...countriesArray];
const data = await response.json();
data.forEach(item => {
if (item.country !== "Total:") {
newCountriesArray.push(item.country)
}
});
setCountriesArray(newCountriesArray);
}
2) Используйте другую клавишу. Поскольку эти данные не имеют уникального ключа, вам может понадобиться использовать индекс массива. Имейте в виду, что это не будет хорошим вариантом, если вы планируете сортировать этот список.
const optionItems = countriesArray.map((item, index) =>
<option key={index}>{item}</option>
)