我在SO上看到了这个问题的不同变体,但在我给定的情况下,没有任何东西真正点击过我。我对React很新,我想看看什么被认为是“反应方式”或最佳实践。
从高层次的角度来看,我有一个“用户”表,其中有一个触发输入模式的按钮,并允许添加新用户的功能。
这是我当前的组件树:
.
└── UserLayout
├── AddNewUserButton
└── UserModal
└── UserGrid
└── UserGridBody
└── UserGridRow
UserLayout
是将我的用户的初始GET
作为状态执行的组件,并将我的子组件更新为props
。
UserModal
处理输入并为我的API执行POST
。
我的问题是,如何在POST
组件的UserModal
之后更新用户表。我已经看到了将回调函数传递给再次设置状态的子组件的示例,但在这种情况下,我必须通过两个级别的组件来做到这一点,这让我觉得我可能正在考虑我的状态驱动组件不正确我希望得到一些有关尝试和真实的建议。什么是最佳做法?
让我知道发布我的所有代码会更有帮助。我不认为这类问题是必要的,但如果能更好地说明我的问题,我当然可以这样做。
答案 0 :(得分:0)
在React中传递回调是很常见的,两个级别甚至三个都没有例外。然而,当向下传递回调时,树变得乏味,或者在以后更难以追踪,然后具有用于存储数据的外部状态是个好主意。然后可以在项目中的所有组件之间共享状态,而无需具有特定结构或传递数据以使其工作。
当保持本地组件状态增加太多复杂性并且容易出错时,This article可以帮助您理解何时“面临墙”。 (它关于redux,但我认为在使用像MobX这样的其他状态管理库时也会引用它,因为它们试图解决同样的问题)