--- order: 8 title: V3 to V4 --- We provide a codemod cli tool [@ant-design/codemod-v4](https://github.com/ant-design/codemod-v4) to help you quickly upgrade to antd v4. ## Usage Before running the codemod cli, please submit your local code changes. ```shell # run directly with npx npx -p @ant-design/codemod-v4 antd4-codemod src # or global installation # use npm npm i -g @ant-design/codemod-v4 # or use yarn yarn add -g @ant-design/codemod-v4 # run antd4-codemod src ``` ## TL;DR `@ant-design/codemod-v4` will help you migrate to antd v4, `@ant-design/compatible` is the workaround for the deprecated APIs and components, so you don't need to do it yourself in general. The blew content is the migration detail. #### Replace deprecated `Form` and `Mention` from `@ant-design/compatible` ```diff - import { Form, Input, Button, Mention } from 'antd'; + import { Form, Mention } from '@ant-design/compatible'; + import '@ant-design/compatible/assets/index.css'; + import { Input, Button } from 'antd'; ReactDOM.render( (
{getFieldDecorator('username')()}
); ``` #### Replace components string icon prop with new `@ant-design/icons` ```diff import { Avatar, Button, Result } from 'antd'; + import { QuestionOutlined, UserOutlined } from '@ant-design/icons'; ReactDOM.render(
- } />
, mountNode, ); ``` #### Replace v3 Icon with the new `@ant-design/icons` ```diff - import { Icon, Input } from 'antd'; + import { Input } from 'antd'; + import Icon, { CodeFilled, SmileOutlined, SmileTwoTone } from '@ant-design/icons'; const HeartSvg = () => ( ); const HeartIcon = props => ; ReactDOM.render(
- + - + - + Cool Home } />
, mountNode, ); ``` #### Replace v3 LocaleProvider with v4 ConfigProvider component ```diff - import { LocaleProvider } from 'antd'; + import { ConfigProvider } from 'antd'; ReactDOM.render( - +
- + mountNode, ); ``` #### Replace `Modal.method()` string icon property with the new `@ant-design/icons` ```diff import { Modal } from 'antd'; + import { AntDesignOutlined } from '@ant-design/icons'; Modal.confirm({ - icon: 'ant-design', + icon: , title: 'Do you Want to delete these items?', content: 'Some descriptions', onOk() { console.log('OK'); }, onCancel() { console.log('Cancel'); }, }); ```