【发布时间】:2021-09-19 13:02:21
【问题描述】:
我对 React 比较陌生,我不完全理解我的代码中的哪里调用了重新渲染。我知道该文件非常大,对此感到抱歉:(。我将删除我知道没有任何内容不断重新渲染的区域。
关于地点和原因的任何想法?谢谢。
代码:
function MeetupItem(props) {
useCallback(() => {
setAllParticipants(participantContext.getParticipants(props));
try {
fetch('http://localhost:3000/users')
.then(response => {
return response.json();
}).then(data => {
const users = [];
for (const key in data) {
const user = {
id: key,
...data[key]
};
users.push(user);
};
setAllPossibleParticipants(allParticipants.filter(users));
console.log(allParticipants);
})
} catch (err) { console.log(err) };
}, [participantContext, props, allParticipants]);
}
export default MeetupItem;```
【问题讨论】:
-
尝试从依赖数组中移除
allParticipants -
没什么,我三个都试过了:(
-
尝试删除组件中的所有内容并尽可能少地返回(或者甚至只是一开始就返回 null)。确保它只渲染一次。然后逐渐添加东西,直到你看到它导致比你预期的更多的重新渲染。
标签: javascript reactjs web frontend infinite-loop