我试图了解React如何与新的Hooks实现一起工作。在此示例中,我希望浏览器在单击渲染选项时渲染所选项目。但是如您所见,它不起作用。
这里是示例:post
在这种情况下是否必须使用useEffect?另外,据我了解,useEffect无法呈现任何内容,只能返回函数。所以,我在这里想念什么?
谢谢!
答案 0 :(得分:1)
您当前正在更改selected
数组的内容,而不是替换它。执行此操作时,React无法检测到状态更改。
尝试以下操作:
const handleSelected = item => {
console.log(item);
console.log(selected);
setSelected([...selected, item]);
};
在将数组或对象作为状态的一部分进行更新时,请始终创建一个新副本以进行分配,以便React可以正确知道何时重新渲染。
此外,将来将代码的相关部分直接包含在问题中,而不是将其隐藏在链接后面(尽管包括一个可运行的示例非常好!)