Упаковка компонента Antd

Я хочу обернуть компонент antd, например. Input в MyInput, чтобы я мог добавить поддержку для новых профессионалов и имен классов, однако он перестал работать, когда я поместил его внутрь 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/>, он перестанет работать

ДЕМО

Я попытался отладить, похоже, что функция saveRef в rc-form / lib / createBaseForm получает null в качестве аргумента компонента, поэтому я чувствую, что это проблема с ref, но я не уверен, как это исправить: S


person Yichaoz    schedule 13.09.2017    source источник


Ответы (1)


Да ладно, я нашел ответ ...

Согласно Refs документация

refs не работает с компонентами без состояния, измените его на класс и работает

person Yichaoz    schedule 13.09.2017