如果是这样,如何正确传递字段名称以使其在组件中显示错误?
我在下面的方式不起作用:
<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']"
但也没有交易...
答案 0 :(得分:3)
您需要使用深层对象来显示嵌套字段的错误。像这样:
const errorObj = {
myFieldArray: {
[index]: {
someText: 'Field required!'
}
}
};
throw new SubmissionError(errorObj);
答案 1 :(得分:0)
最后,我的情况似乎与不将完整的redux表单道具传递给我作为表单字段呈现的子功能组件有关。确保在尝试在功能组件上呈现错误时传递完整的props或props.error。