我找不到任何关于我的功能不纯洁的东西



说真的,我正在不顾一切地寻找问题所在。我好几天都找不到答案了!

React.StrictModeAPI导致我们的setState被调用两次,对吗?如果它产生了一个错误,那么这意味着setState回调中的某个地方是不纯净的。那么,是哪一个呢?

setOrganization((initialValue) => {
const newOrganization = { ...initialValue };
const oldIssues = [...newOrganization.repository.issues.edges];
const newIssues = [...data.data.organization.repository.issues.edges];
newOrganization.repository.issues.edges = [...newIssues, ...oldIssues];
return newOrganization;
});
  • 在第一次调用中,oldIssues返回期望值,例如[{id: issue1}, {id: issue2}]newIssues值例如为[{id: issue3}]

  • 但在第二次调用时,oldIssues奇怪地变成了oldIssuesnewIssues的组合。(第二次调用,oldIssues已就绪[{id: issue1}, {id: issue2}, {id: issue3}](。

  • 使第二个CCD_ 13值具有加倍的CCD_。[{id: issue1}, {id: issue2}, {id: issue3}, {id: issue3}]

完整的脚本可以在这里的第101行找到:https://pastebin.com/ugsrBRTM

感谢Nick Parsons在上面的评论,我只知道对象传播只执行浅层复制。我所需要做的就是将复制方法更改为深度复制

我在这里找到了一个方法:在JavaScript中深度克隆对象最有效的方法是什么?

相关内容

  • 没有找到相关文章

最新更新