SubmissionError是否适用于FieldArray字段?

时间:2017-09-06 19:05:15

标签: reactjs redux redux-form

如果是这样,如何正确传递字段名称以使其在组件中显示错误?

我在下面的方式不起作用:

<FieldArray name='myFieldArray' component={renderArrayField} />

function onSubmit(values) {

    values.myFieldArray.forEach((myField, index) => {

        if (!myField.someText) {

            const errorObj = {}
            const myFieldName = "myFieldArray[" + index + "].someText"

            errorObj[myFieldName] = 'Field required!'
            throw new SubmissionError(errorObj)
        }
    })

    // save the form
}

我也尝试过:

const myFieldName = "myFieldArray[" + index + "].someText._error"

const myFieldName = "myFieldArray[" + index + "]['someText']"

const myFieldName = "myFieldArray[" + index + "]['someText']['_error']"

但也没有交易...

2 个答案:

答案 0 :(得分:3)

您需要使用深层对象来显示嵌套字段的错误。像这样:

const errorObj = {
  myFieldArray: { 
    [index]: { 
      someText: 'Field required!' 
    } 
  }
};

throw new SubmissionError(errorObj);

答案 1 :(得分:0)

最后,我的情况似乎与不将完整的redux表单道具传递给我作为表单字段呈现的子功能组件有关。确保在尝试在功能组件上呈现错误时传递完整的props或props.error。