如何从父组件更改子项的状态

You*_*ter 1 javascript parent-child state-management reactjs redux

所以我有一个React网页.

父组件包含所有子组件(下拉列表,单选按钮,表格等).一旦我使用按钮提交所有表单,我希望所有组件状态都返回null.

没有Redux,这可能吗?我知道我最应该在这一点上使用Redux而且我将在接下来的几天内开始学习它,但在跳之前我只想绕开我的脑袋,如果我想做的事情是可能的/不可能的没有React.

只是为了安心和充分理解.

小智 5

您可以将所有状态值保留在父组件中,并将其作为道具传递给您的演示组件的变更处理程序.然后,您可以在提交表单时重置整个州.这可能是最"反应"的方式.

如果你不想这样做,你可以向你的每个子组件传递一种"重置"道具,当这个道具变为真时,重置状态,然后将父"重置"道具重置为假.但是,我个人认为这不是一个很好的方法,并强烈建议第一个选项.

编辑:你绝对不需要引入redux来完成你想要做的事情

  • 第一种方式实际上是"正确"的方式.您的推理是正确的,因为使用React的目的实际上是仅在必要时呈现组件,但是您假设每个子组件在父组件重新呈现时将被重新呈现是错误的(这很好!).React做差异所以只有实际更改的组件才会重新渲染,在这种情况下只需要重置表单中的组件! (2认同)