【问题标题】:redux-form - asyncBlurFields with FieldArray Componentredux-form - 带有 FieldArray 组件的 asyncBlurFields
【发布时间】:2017-09-12 20:43:10
【问题描述】:

我想知道如何在 FieldArray 内的 Field 组件上触发异步验证。我有类似的东西:

class MyForm extends Component {
  constructor(props) {
    super(props)

  }

  render() {
    const { handleSubmit } = this.props

    return (
      <form onSubmit={handleSubmit}>  
        <Field
          name="name"
          type="text"
          component={RenderInputField}
        />
        <FieldArray
          name="hobbies"
          component={RenderHobbies}
        />
      </form>
    )
  }
}

MyFormBase = reduxForm ({
  form: 'MyForm',
  validate,
  asyncValidate,
  asyncBlurFields: ['name', 'hobbies.hobby']
})(MyFormBase)

RenderHobbies 为:

const RenderHobbies = ({fields}) => (
  <div>
    {fields.map((hobby, index) => ({
      <Field
        name={`${hobby}.hobby`}
        component={RenderInputField}
      />
    }))}
  </div>
)

export default RenderHobbies

这不起作用。异步验证将在模糊时触发“名称”,但不会触发“hobbies.hobby”。正确的语法是什么?

【问题讨论】:

    标签: reactjs redux-form


    【解决方案1】:

    我正在寻找的语法是:

    asyncBlurFields: ['hobbies[].hobby']
    

    很简单,我只是在文档中的任何地方都找不到它。我是通过this线程找到的

    【讨论】:

    • 我想我有一个后续问题是我如何在我的 asyncValidate 函数中访问该爱好的索引?
    猜你喜欢
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 2020-05-09
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多