我是 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/