Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including @ant-design/compatible with all npm packages installed. Try it out:

require("antd/package.json"); // antd is a peer dependency. require("react/package.json"); // react is a peer dependency. require("react-dom/package.json"); // react-dom is a peer dependency. var compatible = require("@ant-design/compatible")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

@ant-design/compatible v1.0.8

Ant Design v3 to v4 compatible package

Ant Design Compatible

NPM version NPM downloads CircleCI

Install

yarn add @ant-design/compatible

Usage

Helps you to compatible different components between v3 and v4.

Follow Component are provided compatible version:

  • Form
  • Icon
  • Mention
import { Form } from '@ant-design/compatible';

import '@ant-design/compatible/assets/index.css'; // If you need

Introduction

Form

Form of v3 api is different with v4:

// V3
import { Form, Input, Button } from 'antd';

class MyForm extends React.Component {
  render() {
    const { form } = this.props;
    return (
      <Form>
        {form.getFieldDecorator('username')(<Input />)}
        <Button>Submit</Button>
      </Form>
    );
  }
}

export default Form.create()(MyForm);

Change to:

// V4 with compatible
import { Form as LegacyForm } from '@ant-design/compatible';
import { Input, Button } from 'antd';
import '@ant-design/compatible/assets/index.css';

class MyForm extends React.Component {
  render() {
    const { form } = this.props;
    return (
      <LegacyForm>
        {form.getFieldDecorator('username')(<Input />)}
        <Button>Submit</Button>
      </LegacyForm>
    );
  }
}

export default Form.create()(MyForm);

Icon

Just import Icon from package @ant-design/compatible and the reset is almost same as before.

// V3
import { Icon, Button } from 'antd';

class MyIconList extends React.Component {
  render() {
    return (
      <div className="icons-list">
        <Button>hello button</Button>
        <Icon type="home" />
        <Icon type="setting" theme="filled" />
        <Icon type="smile" theme="outlined" />
        <Icon type="sync" spin />
        <Icon type="smile" rotate={180} />
        <Icon type="loading" />
      </div>
    );
  }
}

export default MyIconList;

Change to:

// V4 with compatible
import { Icon as LegacyIcon } from '@ant-design/compatible';

class MyIconList extends React.Component {
  render() {
    return (
      <div className="icons-list">
        <Button>hello button</Button>
        <LegacyIcon type="home" />
        <LegacyIcon type="setting" theme="filled" />
        <LegacyIcon type="smile" theme="outlined" />
        <LegacyIcon type="sync" spin />
        <LegacyIcon type="smile" rotate={180} />
        <LegacyIcon type="loading" />
      </div>
    );
  }
}

export default MyIconList;

Mention

The legacy usage in v3

import { Mention } from 'antd';

const { toString } = Mention;

ReactDOM.render(
  <Mention
    style={{ width: '100%' }}
    onChange={onChange}
    defaultSuggestions={[
      'afc163',
      'benjycui',
      'yiminghe',
      'RaoHai',
      '中文',
      'にほんご',
    ]}
    onSelect={onSelect}
    placement="top"
  />,
  mountNode,
);

Compatible usage in v4

import { Mention } from '@ant-design/compatible';
import '@ant-design/compatible/assets/index.css';

const { toString } = Mention;

ReactDOM.render(
  <Mention
    style={{ width: '100%' }}
    onChange={onChange}
    defaultSuggestions={[
      'afc163',
      'benjycui',
      'yiminghe',
      'RaoHai',
      '中文',
      'にほんご',
    ]}
    onSelect={onSelect}
    placement="top"
  />,
  mountNode,
);

FAQ

Missing Grid style when use Form.

You should import Grid style by youself.

import 'antd/es/grid/style/css'; // By CSS
// import 'antd/es/grid/style';         // By LESS

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free