在Redux表单中基于另一个字段验证一个字段

阿潘·马希什(Apan Madhesh)

我正在使用redux-form,而我的组件有几个FieldArrayFieldArray组件之一生成表,如屏幕截图所示。在这里,每一行都是一个Field包含复选框组件。我要实现的是,如果checkbox选中了该行上的组件,则仅price需要字段。

我试图通过使用docs中validate.js所述的方法来解决此问题,但是由于此组件的结构如下:

<FirstComponent>
<FieldArray
  component={SecondComponent}
  name="options"
  fruits={fruitsList}
 />
</FirstComponent>

在我的SecondComponent迭代中fruitsList,如果length大于1,则渲染ThirdComponent该组件负责生成水果列表,如屏幕截图所示。具有某种程度的嵌套,当我使用值进行验证时,它会有很多性能滞后,屏幕冻结直到呈现ThirdComponent每个组件都有一点,Fields因此无法轻松合并。任何更简便的优雅解决方法都将有所帮助。验证的逻辑如下:

props.fruitsList.map((fruit, index) => {
      const isChecked = values.getIn(['fruit', index, 'checked'])
      if (isChecked) {
        const price = values.getIn(['fruit', index, 'price'])
        if (price === undefined || price.length === 0) {
          errors.fruits[index] = { price: l('FORM->REQUIRED_FIELD') }
        }

      }
      return errors
    })

表格Sceenshot]

埃里克·R。

同步验证功能以形式提供所有值因此,假设您的复选框是一个表单值,那么您将拥有所需的所有信息。

function validate(values) {
  const errors = {}
  errors.fruits = values.fruits.map(fruit => {
    const fruitErrors = {}
    if (fruit.checked) { // only do fruit validation if it's checked
      if (!fruit.price) {
        fruitErrors.price = 'Required' // Bad user!!
      }
    }
    return fruitErrors
  })
  return errors
}

...

MyGroceryForm = reduxForm({
  form: 'groceries',
  validate
})(MyGroceryForm)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

一个字段基于另一个字段的求和

如何验证基于另一个字段的字段?

试图基于一个字段获取DateDiff并更新另一个字段

将setFieldValue用于一个字段,基于另一个字段的值

根据另一个字段更新一个字段

需要一个字段或另一个字段

基于Jackson中另一个字段值的条件字段要求?

Django模型字段默认基于相同模型中的另一个字段

如何在查询中添加基于另一个字段的字段

Json模式根据另一个字段验证一个字段的长度

将另一个字段从字段添加到验证器中

在DRF的字段级别验证中获取另一个字段的值

如果另一个字段在Rails表单中为空,则验证嵌套字段

Laravel 5.6:将不同的表单字段值传递到另一个字段的验证中

确定一个字段是否部分源自 R 中的另一个字段

根据另一个字段的值在MongoDB中投影一个字段

在Elasticsearch中查询一个字段不等于另一个字段

在一个字段中输入数据并自动更新另一个字段

检查一个字段的值是否在另一个字段中

如何使用 FilterUserMixin 过滤 Django 中的一个字段或另一个字段

Mongodb 比较使用一个字段与对象数组中的另一个字段

如何在反应中根据另一个字段更新一个字段?

组基于另一个字段中的2个相同数据组成一个字段

在基于MySQL中另一个字段的子查询中使用LIMIT

从另一个字段上的表单更新表单上的字段(Lotus Notes)

如何在formik中基于另一个字段设置一个字段的输入值?

使用外键基于另一个字段中的值来限制一个字段中允许的值

在PostgreSQL中插入行时,如何基于另一个字段自动设置一个字段?

如何在 Django 的模型中通过另一个字段验证一个字段?