【问题标题】:redux form v6, Unknown props messageredux form v6,未知道具消息
【发布时间】:2016-11-29 05:26:00
【问题描述】:

我正在尝试进行简单的表单渲染,但我总是收到此错误

Unknown props `input`, `meta` on <input> tag.

我之前研究过这个问题,除了 github 讨论之外没有发现任何东西,它实际上抛出了 4 或 5 种不同的实现方式,没有达成共识,而且我也遵循了 v6 文档的实现方式方法,但无济于事。有什么建议吗?

我正在使用 v6.2.0,这是我发布此内容时的最新版本。

我这里直接复制粘贴,http://redux-form.com/6.0.0-alpha.15/examples/syncValidation/,还是报错。 (我在下面附上了他们的代码)

import React from 'react'
import { Field, reduxForm } from 'redux-form'

const validate = values => {
  const errors = {}
  if (!values.username) {
    errors.username = 'Required'
  } else if (values.username.length > 15) {
    errors.username = 'Must be 15 characters or less'
  }
  if (!values.email) {
    errors.email = 'Required'
  } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values.email)) {
    errors.email = 'Invalid email address'
  }
  if (!values.age) {
    errors.age = 'Required'
  } else if (isNaN(Number(values.age))) {
    errors.age = 'Must be a number'
  } else if (Number(values.age) < 18) {
    errors.age = 'Sorry, you must be at least 18 years old'
  }
  return errors
}

const renderField = props => (
  <div>
    <label>{props.placeholder}</label>
    <div>
      <input {...props}/>
      {props.touched && props.error && <span>{props.error}</span>}
    </div>
  </div>
)

const SyncValidationForm = (props) => {
  const { handleSubmit, pristine, reset, submitting } = props
  return (
    <form onSubmit={handleSubmit}>
      <Field name="username" type="text" component={renderField} placeholder="Username"/>
      <Field name="email" type="email" component={renderField} placeholder="Email"/>
      <Field name="age" type="number" component={renderField} placeholder="Age"/>
      <div>
        <button type="submit" disabled={submitting}>Submit</button>
        <button type="button" disabled={pristine || submitting} onClick={reset}>Clear Values</button>
      </div>
    </form>
  )
}

export default reduxForm({
  form: 'syncValidation',  // a unique identifier for this form
  validate                 // <--- validation function given to redux-form
})(SyncValidationForm)

【问题讨论】:

  • console.log(this.props);在渲染顶部并发布结果
  • 对象 {anyTouched: false, asyncValidating: false, dirty: false, error: undefined, form: "syncValidation"…}
  • 我也尝试过 但这不会记录输入的变化(看不到您正在输入的内容)并且不会发生错误或验证检查
  • @LarryStraw 查看我的答案。它将解决您的问题。

标签: reactjs react-redux redux-form react-redux-form


【解决方案1】:

因为您使用的是6.0.0-alpha.15版本的代码示例。

实现6.2.0 example 应该可以修复错误(如果您使用的是 redux-form v6.2.0)。

Credits.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2017-04-02
    相关资源
    最近更新 更多