【问题标题】:Dynamically change redux-form based on field values根据字段值动态更改 redux-form
【发布时间】:2016-05-27 14:22:15
【问题描述】:

我有一个由三个字段组成的表单。如果字段#1 的值等于true,则必须从表单中删除字段#3,如果字段#1 的值等于false,则需要将字段#3 放回表单中。

我没有找到一种简单、干净的方法来做到这一点。

redux-form 网站上的一个示例解释了如何根据表单容器的状态动态构建表单。容器将字段数组作为prop 传递给表单组件,控制字段数组的输入字段在容器内。我不能真正使用这种方法,因为字段 #1 必须在表单中。

我尝试使用 CSS 简单地隐藏字段 #3,但是验证规则不知道哪些字段被隐藏。

【问题讨论】:

    标签: reactjs redux-form


    【解决方案1】:

    如果您不需要修改表单的结构,而只想隐藏字段,也许这对您有用:

    render() {
      const {yourField1, yourField3} = this.props;
      <div>
        <Input type="text" {...yourField1} />
        { !yourField1.value && 
            <Input type="text" {...yourField3} />}
      </div>
    

    【讨论】:

    • 可以,但我仍然需要在验证函数中测试 yourField1 的值,否则 yourField3 仍将被验证。
    • 查看文档redux-form.com/5.2.5/#/examples/… 中的 SynchronousValidationForm 示例,只有当 yourField1 为 false 时,您才会验证 yourField3
    • 是的,这就是我所说的“我需要在我的验证函数中测试 yourField1 的值”的意思。我认为有一种方法可以从我的表单中完全删除该字段。无论如何,我想如果有人提出更好的解决方案,我会将问题留待更长时间。谢谢@parecementeria!
    猜你喜欢
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 2018-02-09
    • 2019-07-13
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    相关资源
    最近更新 更多