解决antd Cannot read property 'validate' of undefined

问题描述:使用React+antd开发,本地使用新建表单Form的Input没什么问题,但是,打包到服务器上之后,在输入框输入值后报错,Cannot read property ‘validate’ of undefined。


问题原因:使用 Form.create()((props) => { 。。。。}) 创建表单。
Form.create() 是不能这样这样直接新建表单Form的。


解决方案:建议新建一个组件,使用该组件来创建页面内的表单Form。

// 1.组件代码

import React from 'react'
import { Form } from 'antd'

export const createForm = (statelessFunc) => {
  return Form.create()(React.createClass({
    render() {
      return statelessFunc(this.props)
    }
  }));
}
//  2.配置你的组件封装路径(你的组件配置方式)
//  3.引入及使用
import { createForm } from 'enhanceUtil';

const niceForm = createForm((props) => { 。。。 })

如上写法,我们就不必在代码的末尾声明Form.create()。(如:export default connect(mapStateToProps, mapDispatchToProps)(Form.create()(UpdateProdtype)) 就不必有Form.create()了。)。
最后,关于mapStateToProps, mapDispatchToProps我也在另一篇博客中说明—React依赖注入说明(mapStateToProps/mapDispatchToProps)

你可能感兴趣的:(Ant,Design)