包装Antd组件

时间:2017-09-13 04:37:49

标签: reactjs antd

我想包装antd组件,例如。 Input进入MyInput所以我可以添加对新的pros和classNames的支持,但是当我把它放在Form

内时它停止工作

MyInput.js

import { Input } from 'antd';

function MyInput({ className='', ...rest }) {
  const computedClassName = 'my-input '+className;

  return (
    <Input className={computedClassName} {...rest} />
  );
}

MyInput.defaultProps = Input.defaultProps;
MyInput.propTypes = Input.propTypes;
MyInput.Group = Input.Group;
MyInput.Search = Input.Search;
MyInput.TextArea = Input.TextArea; 

现在,如果我将<MyInput />放在<Form/>内,它就会停止工作

DEMO

我试着调试,看起来像rc-form / lib / createBaseForm中的saveRef函数接收null作为组件参数,所以这让我觉得是一个ref问题,但我不确定如何解决它:S

1 个答案:

答案 0 :(得分:0)

没关系,我找到了答案......

根据Refs文档

refs无法处理无状态组件,将其更改为类并工作