首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型表单应用程序

大型表单应用程序
EN

Stack Overflow用户
提问于 2016-07-07 07:42:48
回答 1查看 374关注 0票数 0

我一直在使用react重写公司中的一个模块,该模块是由4-5个不同的表单组成的单个页面,每个表单中的选择都会决定下一个表单步骤的一致性。

有许多“静态”输入字段不影响应用程序的可视化ui状态,但需要发送到服务器,其他输入正在更改ui状态。

我正在为这种类型的应用程序寻找正确的方法,因为它似乎将onChange事件附加到每个输入(整个页面中有超过100个输入)。我使用了react redux-forms插件,但是它对我来说太像块盒了,因为我需要直接访问状态并根据它做出决定。我更喜欢对国家进行更多的控制。

是否为每个输入绑定onChange事件的正确解决方案?或者有没有更好的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 08:17:44

我们很容易用redux-form来完成这个任务。因为所有东西都是在fields道具中维护的,所以您可以这样做:

代码语言:javascript
复制
const Form = ({
  fields,
  handleSubmit,
  saveForm
}) => (
  <form onSubmit={handleSubmit(saveForm)}>
    <fieldset>
      <input type="text" {...fields.hasAlternativeDelivery} />
    </fieldset>
    {fields.hasAlternativeDelivery.value === true &&
      <fieldset>
        {/* more fields go here */}
      </fieldset>
    }
  </form>
);

然后我们有条件地验证某些字段集像这样。因此,要回答您的问题:您不应该依赖更改事件来隐藏/显示某些字段,这与React的本质是背道而驰的(React是声明性的,您所描述的是一种势在必行的做事方式)。相反,找出哪种状态(/props)应该导致哪种UI。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38240033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档