javascript - 为什么我们需要在父组件中保存状态

标签 javascript reactjs

我是 React 新手,一直在努力解决我们需要在 React 中保持状态的地方。我遇到一个示例,它将状态放入父组件中并通过 props 访问该状态。也就是说,存在Accordion 组件,并且Accordion 要么处于“打开”状态,要么处于“关闭”状态 strong>状态,储存 该信息作为父组件状态内的标志(不在 Accordion 内)。我们告诉 Accordion 通过传递 isOpen 作为 prop 来渲染哪种方式。当 isOpen 为 true 时,它​​呈现为 打开。当 isOpen 为 false 时,它​​呈现为关闭。

*问题是为什么我们需要在父组件中保留状态,因为我们可以在 Accordion 组件中保留状态并在那里管理它。 *

最佳答案

在您的示例中,如果 Accordion 需要可能更好的位置的状态(该示例可能不正确)。一般来说,要遵循的一个好规则是保持状态尽可能“具体”或“狭窄”。

如果作为这些祖先的子级的其他组件也需要访问,则仅需要在树中提升状态(到其父级或更早的祖先)。

但是,如果在您的示例中,假设 AccordionParent 正在呈现不同的 UI 或使用 isOpen 执行某些操作,那么这可能是一个好地方(因为它通常是一个将 child 的状态暴露给 parent 是个坏主意)。

关于javascript - 为什么我们需要在父组件中保存状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57917151/

相关文章:

javascript - 这个 Angular 错误是什么意思?

Javascript - 解析动态添加的表单

javascript - 为什么 jQuery 从自定义数据属性中删除括号?

apache - 在外部卷中为 Docker 设置 .htcaccess 不起作用

javascript - "Process is not defined"与react-chartjs-2 CDN

javascript - Jquery 拖动还原到特定的 div

javascript - slider 图像上的淡入和淡出

reactjs - 使用 React hooks 的值流

reactjs - 即使值(第二个参数)与前一个值相同,我如何执行 useEffect - React

reactjs - 如何从Jotai状态管理库中的原子数组读取数据