【发布时间】:2020-09-07 20:03:24
【问题描述】:
我有一个巨大的表单,并且从表单外部触发了 sumbit
<App>
<Form/>
<Button/>
</App>
问题是我需要在按钮组件中有当前表单字段对象。我尝试通过传递 setState 函数来通过多个层传递状态:
const [formFields, setFormFields] = useState(null);
<App>
<Form setData={setFormFields}/>
<Button data={formFields}/>
</App>
并且还可以在按钮组件中使用 redux 调度(在表单字段更改时)和 useSelector 来获取当前数据。但是当我在输入字段中写一些文本时,这两种方法似乎真的减慢了应用程序的速度。
优化它的最佳解决方案是什么?
【问题讨论】:
-
为什么你的按钮组件需要整个
formFields状态? -
我需要所有的表单数据都来自按钮组件触发的 POST 请求
-
我明白了。将
submit回调(和其他一些小事)传递给Button怎么样,以便包含formfields状态的组件执行发布请求?
标签: reactjs