Redux-form 6.0.0 access error outside Field component

前端 未结 2 1537
悲哀的现实
悲哀的现实 2021-01-06 17:27

In Redux-form v5 I was able to access to the \"inline\" errors (async validation) from anywhere in the decorated form, like so:

const fields = [
  \'email\'
         


        
相关标签:
2条回答
  • 2021-01-06 17:37

    The solution I found is to use the error prop (http://redux-form.com/6.0.0-rc.4/docs/api/Props.md/#-error-any-). From my asyncValidate function I fill the returned error._error object with my fields errors. I can then access it from the decorated form using const { error } = this.props.

    If anyone has a better solution...

    Edit: don't do this. Use the valid answer (Fields component).

    0 讨论(0)
  • 2021-01-06 17:49

    If you are wanting to display the error next to the input, then it should be handled in the component that you pass to Field. If you want to display all the errors together, like at the bottom of the form by the submit button, you could use the new Fields component like so:

    const fieldNames = [
      'email',
      'password'
    ]
    
    const renderAllErrors = fields => (
      <ul>
        {Object.keys(fields).map(key => {
          const { meta: { touched, error } } = fields[ key ]
          return touched && error ? <li key={key}>{key}: {error}</li> : undefined
        })}
      </ul>
    )
    
    ...
    
    <Fields names={fieldNames} component={renderAllErrors}/>
    
    0 讨论(0)
提交回复
热议问题