为什么这里没有“选择”呈现?

时间:2019-04-02 01:30:14

标签: reactjs

我试图了解React如何与新的Hooks实现一起工作。在此示例中,我希望浏览器在单击渲染选项时渲染所选项目。但是如您所见,它不起作用。

这里是示例:post

在这种情况下是否必须使用useEffect?另外,据我了解,useEffect无法呈现任何内容,只能返回函数。所以,我在这里想念什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

您当前正在更改selected数组的内容,而不是替换它。执行此操作时,React无法检测到状态更改。

尝试以下操作:

  const handleSelected = item => {
    console.log(item);
    console.log(selected);
    setSelected([...selected, item]);
  };

在将数组或对象作为状态的一部分进行更新时,请始终创建一个新副本以进行分配,以便React可以正确知道何时重新渲染。

此外,将来将代码的相关部分直接包含在问题中,而不是将其隐藏在链接后面(尽管包括一个可运行的示例非常好!)