意外的提取数据挂钩行为

时间:2019-10-30 03:21:07

标签: reactjs react-hooks

我正在学习如何使用钩子获取数据。在我的迷你项目中,我创建了一个自定义挂钩来获取并返回数据。在我的组件中,我创建了2个不同的状态,以存储来自所获取数据的2个列表,并将其呈现在屏幕上。

预期结果:当我单击“用户列表”中的名称时,它将将该用户移至“代表列表”。当我单击“重置”时,两个列表都应返回原始状态。

实际结果:Console.log显示,每次单击名称都会修改原始数据。因此,我无法重置列表。我无法解释为什么组件状态更改时useFetchData中的状态也会更改。

我想念什么?谢谢! CodeSandbox

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。我以为这是一个棘手的问题,原来是我对点差运算符缺乏了解。阅读文档后,我现在知道,spread操作仅复制数组或对象的第一层。如果数组或对象是多维的,则散布运算符将不起作用。这就是挂钩状态已更改的原因。