【发布时间】:2018-06-12 19:54:52
【问题描述】:
我在 React-redux 页面中有一个很大的注册表单。
我不需要将任何数据绑定到表单,因为它总是加载空白,并且在提交时可以将数据发送到 API 并被重定向到“请检查我们的电子邮件”页面。
我也遇到的问题是我正在使用 MaterializeReact 并使用他们的自定义组件。这只是呈现为带有名称的输入,因此传统的表单数据将是完整的..
网上所有的例子,好像要我创建一个状态,然后对每个输入元素我绑定状态到它,然后我所有的值都会在this.state中。
这似乎有点远,因为我有 30、40 个字段。
我找到了一种使用 refs 的方法,但我不想使用它,因为我知道 ref 字符串已被弃用。 ref 解决方案是这样的:
submitform() {
const formData = {};
for (const field in this.refs) {
formData[field] = this.refs[field].value;
}
//Now I have the all values wrapped in a object to send to server
}
<form>
<Input ref="firstName" /> //MaterializeReact Component. Renders as <input>
<button type="button" onclick="{submitForm}" />
</form>
在不麻烦绑定每个输入的情况下获取多个输入的值的推荐方法是什么?
【问题讨论】:
-
看看这个 5000 个表单字段的演示,没有任何性能延迟:hookstate.netlify.com/performance-demo-large-form 它使用状态挂钩来绑定表单字段,但它是 React 的方式。免责声明:我是该项目的作者。
标签: javascript reactjs react-redux