【发布时间】:2016-12-07 13:05:09
【问题描述】:
我在从表单中获取数据时遇到了一些麻烦。表单本身是动态的,这意味着我的某些字段并不总是存在,而是仅在特定情况下呈现。
当附加这些时,很难预测容器的状态应该是什么样子。还有哪些handleChange函数应该在那里。我的表单中的组件至少有 2 层深,因此组件本身就是将最终的输入组件渲染到 DOM。
看了一会,发现有人一直在使用refs,但是对于这种方式有很多负面的看法。而且它看起来确实有点……繁琐。
问题: 如果表单是动态的,你怎么能从表单中获取所有数据?
设置:
<Form onSubmit={this.acceptOffer.bind(this)}>
<MainProductContainer offer={this.state.offer}/>
<RequirementsContainer requirements={this.state.offer.requirements}/>
<Segment basic textAlign='center'>
<Button
type='submit'
content='Send'
primary
loading={this.state.accept_state == 'pending'}>
</Button>
</Segment>
.
acceptOffer(event) {
//This is where I want to get all the data from the form
}
【问题讨论】:
-
那么表单字段在 MainProductContainer 和 RequirementsContainer 中?
-
没有。例如 MainProductContainer 通过一些逻辑来决定应该在这个容器中显示哪个产品。产品本身是包含复选框的组件。所以 Form -> MainProductContainer -> Product(包含一个字段)
标签: javascript forms reactjs