Я использую функциональный компонент реакции и получаю внешние данные внутри цикла for. Проблема в том, что компонент обновляется бесконечно. Ниже показано, что я пытаюсь сделать:
const SongGrid = (props: any) => {
const [songData, setSongData] = useState(props.location.state.items);
useEffect(() => {
const fetchData = (data: any) => {
CommonService.postApiExecutor('getdata', {data.id})
.then((response) => {
element.extProp1 = response.data.one;
setSongData(
songData.map((item: any) =>
item.song_id === song.song_id
? { ...item, extProp1 : extProp1 }
: item,
),
);
})
}
songDataObj.forEach((element: any) => {
fetchData(element)
})
},[songData])
return (
<div>
<table>
<thead><th>Song Name</th><th>Ext property 1</th></thead>
<tbody>
{songDataObj.map((song: any, i: any) => (
<tr>
<td>song.songName</td>
<td>{song.extProp1?song.extProp1:''}</td>
</tr>
))}
</tbody>
</table>
</div>
)
}
Я обновляю songData при каждом ответе, и ячейки таблицы обновляются не менее 70, 80 раз и страница сбой.