【发布时间】:2021-04-27 01:05:21
【问题描述】:
我绝对是一个 React 菜鸟,但我已经做了很多搜索,并且在这个基本原则上不断出现不足。我有一个通过 create-react-app 创建的 React 应用程序,结构如下:
-Parent Component
-Child Component with some statistic values
-Child Component (Form with Submit Button)
当用户与 Form 子组件交互时,他们可能会混合提交按钮,这会导致该组件中的代码进行 xhr 调用以与我的数据库交互。该交互的结果可能是另一个子组件中的统计数据发生变化。提交过程完成后,如何使 Stats 子组件重新获取其数据?
现在我在 stats 组件中有获取代码,在表单组件中有提交代码。将所有代码强加给父级的答案是什么?
我正在使用类组件,但如果这样更容易的话,我可以转换为函数式。
【问题讨论】:
-
将状态提升到父组件将是最简单和最直观的。如果许多不同的组件使用相同的数据,那么您可以使用 Context API 或 Redux
-
我看到的两个潜在问题。 1.提交代码现在在父级中,但需要访问表单子级中的用户输入; 2. form child 如何告诉 parent 它需要重新获取数据?
-
就像您将状态值传递给 stats 组件一样,您也可以将函数传递给表单组件。在这里你可以找到答案:stackoverflow.com/questions/41619166/…
-
您可以将一个函数(提交逻辑)作为道具传递给表单子组件,然后将表单状态从表单子组件传递给该函数。当状态改变时,React 会自动更新视图。
-
我假设提交按钮的测试也会向上移动到父组件?
标签: reactjs