4

1. 坑一:
报错:Cannot read property 'getFieldDecorator' of undefined
clipboard.png
解决方法:
Form.create()(Questionary) // 用Form.create()加一层
clipboard.png

2. 坑二
报错:'form' is missing in props validation react/prop-types
clipboard.png
原因: 加了代码检查工具eslint
解决办法:

第一步: import PropTypes from 'prop-types';
第二步: form: PropTypes.any

clipboard.png

3. 坑三 怎么在组件中使用 getFieldDecorator
第一步:父级组件中这么写:需要用<Form></Form>嵌套一下
clipboard.png

第二步:子组件这么用:

ShowTextArea () {
    const data = this.props.data
    const validRules = data.textValidate
    const { getFieldDecorator } = this.props.form
    return <FormItem key={data.id}>
      {getFieldDecorator(`textareaValue`, {
        initialValue: validRules.initVal, // 默认文本
        rules: [{
          required: true,
          message: validRules.errMsg // 错误信息
        }]
      })(
        <TextArea placeholder="Please enter content" />
      )}
    </FormItem>
 }

当页面上多个子组件,要保证变量不一样,这么写:

ShowTextArea () {
    const data = this.props.data
    const validRules = data.textValidate
    const { getFieldDecorator } = this.props.form
    return <FormItem key={data.id}>
      {getFieldDecorator(`textareaValue-${data.id}`, {
        initialValue: validRules.initVal, // 默认文本
        rules: [{
          required: true,
          message: validRules.errMsg // 错误信息
        }]
      })(
        <TextArea placeholder="Please enter content" />
      )}
    </FormItem>
 }

未完待续。。。。。


小佛爷13
19 声望0 粉丝

引用和评论

0 条评论