Javascript 从React中的动态表单获取数据

Javascript 从React中的动态表单获取数据,javascript,forms,reactjs,Javascript,Forms,Reactjs,我在react中从表单获取数据时遇到一些问题。表单本身是动态的,这意味着我的一些字段并不总是在那里,而是只在特定情况下呈现 当连接这些时,很难预测容器的状态应该如何。还有应该有哪些handleChange函数。我表单中的组件至少有两层,因此组件本身就是向DOM呈现最终输入组件 做了一些调查,发现人们一直在使用REF,但是对于这种方法有很多负面的看法。而且看起来确实有点。。。烦躁地 问题: 当表单处于动态状态时,如何从表单中获取所有数据 设置: <Form onSubmit={this.ac

我在react中从表单获取数据时遇到一些问题。表单本身是动态的,这意味着我的一些字段并不总是在那里,而是只在特定情况下呈现

当连接这些时,很难预测容器的状态应该如何。还有应该有哪些handleChange函数。我表单中的组件至少有两层,因此组件本身就是向DOM呈现最终输入组件

做了一些调查,发现人们一直在使用REF,但是对于这种方法有很多负面的看法。而且看起来确实有点。。。烦躁地

问题: 当表单处于动态状态时,如何从表单中获取所有数据

设置:

<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>

您可以在这里找到操作方法:

因此表单字段位于MainProductContainer和RequirementsContainer中?否。例如,MainProductContainer通过一些逻辑来决定哪个产品应显示在此容器中。产品本身是包含复选框的组件。所以表单->MainProductContainer->产品(包含一个字段)好的!似乎您的意思是,常规的以道具形式发送数据的方式仍然适用于动态表单。在我的情况下,无法知道用户可以在此设置哪些变量。事先声明,我将尝试抱歉,我忘记道具是只读的,并且您不能在子容器中更改它们。因此,访问此数据的其他方法是通过Flux/Redux或通过传递给子组件的函数来更改父组件中的状态。没有问题,以前在react中使用过表单,但没有使用动态表单。我链接的答案有一种有趣的方式,可以确保州政府只拥有想要的数据字段。只是不确定我是否应该去做。这不是讨论的论坛,但我不喜欢react中到目前为止关于表单的所有道具传递和状态更新。我在react原生应用程序中也遇到了一些问题,希望将来使用redux,这似乎很好地处理全局状态,而不必到处传递东西。因此,也许Redux可以帮助您:
acceptOffer(event) {
    //This is where I want to get all the data from the form
}