更新通过子组件映射的父组件的状态不会重新渲染父组件

时间:2021-05-20 14:04:28

标签: reactjs use-state

我在父级内部有一个函数,它作为道具传递给子级,然后被调用。当这个函数被调用时,父的状态被更新。状态是在父级中映射的列表,但 .map 在反应中不会在父级中重新呈现。当组件实际重新渲染时,它会在屏幕上更新,但不会在最初通过 setState() 更改时更新;

这是我在代码沙箱上创建的代码的简化复制链接: https://codesandbox.io/s/crazy-faraday-hwyve?file=/src/App.js (顺便说一下点击文本“Hello codeSandBox”时状态更新)

如果有帮助,我添加了注释以显示从父级到子级的流程,您还可以看到状态确实在控制台中更新,但在再次保存文件或其他状态更改之前不会在屏幕上更新强制刷新组件。

1 个答案:

答案 0 :(得分:0)

过滤列表解决了我的问题。我使用了文件管理器的索引并将其与传递给函数的索引进行了比较(或者在代码和框的情况下只是设置索引 2)。

    const deleteEvent = (identity) => {
        setList(eventList.filter((item, index) => index !== identity));
}