Ant-design: тЬи рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди 4.0 рдмрд╛рд╣рд░ рд╣реИ!

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдлрд╝рд░ре░ 2020  ┬╖  75рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ant-design/ant-design

рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди 4.0 рдмрд╛рд╣рд░ рд╣реИ!

рдкрд░рд┐рдЪрдп

рд╣рдордиреЗ рдПрд╕рдИрдИ рдХреЙрдиреНрдлрд┐рдбреЗрдВрд╕ рдкрд░ 4.0 рдЖрд░рд╕реА рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдХреЗ рдмрд╛рдж, рдпрд╣ 4.0 рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ! рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рд╕реБрдЭрд╛рд╡ рдФрд░ рдпреЛрдЧрджрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА rc рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рдЕрдкрдбреЗрдЯ рдФрд░ рдХреБрдЫ рдЕрдкрдбреЗрдЯ рдХреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдкреВрд░реНрдг рдЕрджреНрдпрддрди рдкреНрд░рд▓реЗрдЦрди рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ https://ant.design

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ v3 рд╕рдВрд╕реНрдХрд░рдг рджрд┐рд╕рдВрдмрд░ 2019 рдореЗрдВ 3.x-stable рд╢рд╛рдЦрд╛ рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред рд╣рдо рдЕрднреА рднреА v3 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрдзреЗ рд╕рд╛рд▓ рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рд░рдЦрд░рдЦрд╛рд╡ рдХреА рд╕рдордп рд╕реАрдорд╛ рдордИ 2020 рд╣реИред

рдбрд┐рдЬрд╛рдЗрди рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЙрдиреНрдирдпрди

рд╣рдордиреЗ 4px рд╕реЗ 2px рдХреЗ рдЖрдзрд╛рд░ рдЧреЛрд▓ рдХреЛрдиреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдкрдЯреНрдЯрд┐рдХрд╛ рд╕реНрд╡рдпрдВ рдПрдХ рд╡рд┐рд╡рд░рдг рд╣реИ, рдФрд░ рдордзреНрдп рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рд╣рдо рдкрд╣рд▓реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджрдХреНрд╖рддрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рджреГрд╢реНрдп рд╡рд┐рд╡рд░рдг рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝рдиреЗ рдХреА рджрдХреНрд╖рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкрджрд╛рдиреБрдХреНрд░рдо рдкрд░ рдмрд▓ рджреЗрддреЗ рд╣реБрдП, рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╛рдпрд╛ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫрд╛рдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдбрд╛рд░реНрдХ рдереАрдо

рд╣рдордиреЗ v3 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЙрдиреНрдирдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ v4 рдПрдХ рдЕрдВрдзреЗрд░реЗ рд╡рд┐рд╖рдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдбрд╛рд░реНрдХ рдереАрдо рдкреНрд░рднрд╛рд╡ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдкрд░ рд╕реНрд╡рд┐рдЪ рдереАрдо рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рд╕реАрдорд╛рд╣реАрди рдШрдЯрдХ

рджреИрдирд┐рдХ рдХрд╛рд░реНрдп рдореЗрдВ, рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╣рд▓реНрдХреЗ рдЪрдпрди рдШрдЯрдХ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рдирдИ рд╕реАрдорд╛рд╣реАрди рд╢реИрд▓реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдП рдмрд┐рдирд╛ рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

borderless

рдЕрдиреБрдХреВрд▓рддрд╛ рд╕рдорд╛рдпреЛрдЬрди

рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди 3.0 рдиреЗ IE рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрджреНрдпреЛрдЧ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡реИрд╢реНрд╡рд┐рдХ рдФрд░ рдШрд░реЗрд▓реВ IE9 / 10 рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреЛрдиреЛрдВ рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдбреЗрдЯ рд╕реЗ рд╕рд┐рдХреБрдбрд╝ рд░рд╣реЗ рд╣реИрдВред рд╣рдордиреЗ 4.0 рдкрд░ IE 9/10 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ (рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА IE 11 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛)ред рдЗрд╕рд▓рд┐рдП, рдЕрддреАрдд рдореЗрдВ рдХреБрдЫ рдХрдо-рдкреНрд░рджрд░реНрд╢рди рдШрдЯрдХреЛрдВ рдХреЛ рднреА рдирдП рд╕реАрдПрд╕рдПрд╕ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдорд┐рд▓реЗрдЧрд╛ред

рдЙрд╕реА рд╕рдордп, рд╣рдордиреЗ рд░рд┐рдПрдХреНрдЯ рдХреЗ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рднреА рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬреЛ v4 рд░рд┐рдПрдХреНрдЯ 16.9 рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ v4 рд╕рдВрд╕реНрдХрд░рдг рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╣реБрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдХреБрдЫ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдПрдкреАрдЖрдИ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ v3 рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рдереАред рд╣рдо рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ v3 рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХрд╛

antd @ 3.9.0 , рд╣рдордиреЗ svg рдЖрдЗрдХрди ( рдХреНрдпреЛрдВ svg рдЖрдЗрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? ) рдкреЗрд╢ рдХрд┐рдпрд╛ред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрдЗрдХрди API рдХреЛ рдорд╛рдВрдЧ рдкрд░ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП svg рдЖрдЗрдХрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреИрдХреНрдб рдЙрддреНрдкрд╛рдж рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред 4.0 рдореЗрдВ, рд╣рдордиреЗ рдкреЗрдбрд╝ рдХреЗ рд╣рд┐рд▓рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдХрди рдЙрдкрдпреЛрдЧ рдПрдкреАрдЖрдИ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛, рдПрдВрдЯреЗрдВрдЯ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрдХреЗрдЬ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд▓рдЧрднрдЧ 150 KB (Gzipped) рд╕реЗ рдХрдо рдХрд┐рдпрд╛ред

рд▓рд┐рдЧреЗрд╕реА рдЖрдЗрдХрди рдЙрдкрдпреЛрдЧ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

import { Icon, Button } from 'antd';

const Demo = () => (
  <div>
    <Icon type="smile" />
    <Button icon="smile" />
  </div>
);

4.0 рдореЗрдВ, рдпрд╣ рдорд╛рдВрдЧ рдкрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

  import { Button } from 'antd';

 // tree-shaking supported
- import { Icon } from 'antd';
+ import { SmileOutlined } from '@ant-design/icons';

  const Demo = () => (
    <div>
-     <Icon type="smile" />
+     <SmileOutlined />
      <Button icon={<SmileOutlined />} />
    </div>
  );

  // or directly import
  import SmileOutlined from '@ant-design/icons/SmileOutlined';

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ gzipped рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рднреА рд╣рдЯрд╛ рджреА рд╣реИрдВ:

bundleSize

рдШрдЯрдХ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛

рдлреЙрд░реНрдо рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛

рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдереЛрдбрд╝рд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдПрдкреАрдЖрдИ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рдкрддреНрд░.create рдХреЗ HOC рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдкрддреНрд░ рдЖрд╡реГрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдШрдЯрдХ рдкрд░ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП form.getFieldDecorator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдкреВрд░реЗ рдлреЙрд░реНрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд░реВрдкреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЪрд┐рдВрддрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред V4 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдкреНрд░рдкрддреНрд░ рдПрдХ рдкреНрд░рдкрддреНрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЖрдПрдЧрд╛ред рдЖрдк рд╕реАрдзреЗ Form.Item рдХреА name рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рдБрдз рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ рдХреЛрдб рд╕рд░рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛:

- const { form } = this.props;

- const onSubmit = () => {
-   form.validateFields((err, values) => {
-     if (!err) {
-      console.log('Received values of form: ', values);
-    }
-   });
- };

+ const onFinish = (values) => {
+   console.log('Received values of form: ', values);
+ };

- <Form onSubmit={onSubmit}>
+ <Form onFinish={onFinish}>
-   <Form.Item>
+   <Form.Item name="username">
-     {getFieldDecorator('username')(
-       <Input />,
-     )}
+     <Input />
    </Form.Item>
  </Form>

рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдЙрди рдореВрд▓реНрдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬреЛ рдкреНрд░рдкрддреНрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдмрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИред рддреЛ рд╣рдо onFinish рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХреЗрд╡рд▓ рдлреЙрд░реНрдо рд╕рддреНрдпрд╛рдкрди рдХреЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЖрдЧ рд▓рдЧрд╛рдПрдЧрд╛, рдФрд░ validateFields рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝реЙрд░реНрдо рдЖрдкрдХреЛ рд╣реБрдХ рдХрд╛ рддрд░реАрдХрд╛ Form.useForm рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдлреЙрд░реНрдо рдЙрджрд╛рд╣рд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ:

const [form] = Form.useForm();

React.useEffect(() => {
  form.setFieldValues({ ... });
});

<Form form={form} />

рдЙрд╕реА рд╕рдордп, рд╣рдо рдлрд╝реЙрд░реНрдо рд▓рд┐рд╕реНрдЯ рдШрдЯрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реВрдЪреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ:

<Form.List name="names">
  {(fields, { add, remove }) => (
    <div>
      {fields.map(field) => <Form.Item {...field}><Input /></Form.Item>}
      <Button onClick={() => add(initialValue)}>Add</Button>
    </div>
  }
</Form.List>

рдЯреЗрдмрд▓ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛

рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рд╣рдордиреЗ sticky рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрдВрднреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рдкрддреНрд░ рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЙрд▓рдо рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЦрдкрдд рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред IE 11 рдХреЗ рд▓рд┐рдП рдЬреЛ sticky рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд▓реЗрддреЗ рд╣реИрдВред

рдЙрд╕реА рд╕рдордп, рд╣рдо рд╕рд╛рд░рд╛рдВрд╢ рд▓рд╛рдЗрди рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ summary API рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:

рд╕реЙрд░реНрдЯрд░ рдПрдХ рдмрд╣реБ-рд╕реНрддрдВрдн рдЫрдБрдЯрд╛рдИ рд╕рдорд╛рд░реЛрд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реНрдХ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рддрд╛рдХрд┐ fixedColumn , expandable рдФрд░ scroll рдЕрдм рдорд┐рд╢реНрд░рд┐рдд рд╣реЛ рд╕рдХреЗрдВред рддрд╛рд▓рд┐рдХрд╛ рд╕рд╛рдордЧреНрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП body API рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдЬреИрд╕реЗ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирдИ DatePicker, TimePicker рдФрд░ рдХреИрд▓реЗрдВрдбрд░

рд╣рдордиреЗ рдЗрд╕реЗ moment рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкреВрд░реНрдг рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдирд╛рдВрдХ рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИред рдЖрдк generate рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╕реНрдЯрдо рддрд┐рдерд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд┐рдХрд░ рдШрдЯрдХ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд┐рдХрд░ рдШрдЯрдХ рдЕрднреА рднреА рджрд┐рдирд╛рдВрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ moment рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдХрд╕реНрдЯрдо рддрд┐рдерд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╕рдордп, рддрд┐рдерд┐, рд╕рдкреНрддрд╛рд╣, рдорд╣реАрдирд╛, рд╡рд░реНрд╖ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЗрд╕реА рд╢реНрд░реЗрдгреА рдХреЗ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдкрд┐рдХрд░ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

<RangePicker />
<RangePicker showTime />
<RangePicker picker="week" />
<RangePicker picker="month" />
<RangePicker picker="year" />

рд░реЗрдВрдЬ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЕрдм рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдпрд╛ рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рддрд┐рдерд┐ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЕрдиреБрднрд╡ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред

рдЕрдзрд┐рд╕реВрдЪрдирд╛ / рдореЛрдбрд▓ рд╕рдорд░реНрдерди рд╣реБрдХ

рдЕрддреАрдд рдореЗрдВ, рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Modal.xxx рдФрд░ Notification.xxx рдХреЙрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрд╕реЗрдкреНрдЯ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрди рд╕рд┐рдВрдереИрдЯрд┐рдХ рд╢рдХреНрдХрд░ рдХреЗ рд▓рд┐рдП ReactDOM.render рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд░рд┐рдПрдХреНрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдПрдВрдЧреЗ, рдЬреЛ рд╕рдВрджрд░реНрдн рд╣рд╛рдирд┐ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рднреА рдмрдирддрд╛ рд╣реИред рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдо рд╣реБрдХ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдбреНрд╕ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

const [api, contextHolder] = notification.useNotification();

return (
  <Context1.Provider value="Ant">
    {/* contextHolder is in Context1 which mean api will not get context of Context1 */}
    {contextHolder}
    <Context2.Provider value="Design">
      {/* contextHolder is out of Context2 which mean api will not get context of Context2 */}
    </Context2.Provider>
  </Context1.Provider>
);

рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓

V4 рдореЗрдВ, рд╣рдордиреЗ рдЯреНрд░реА, рдЯреНрд░реАрд╕реЗрд▓реЗрдЯ, рдФрд░ рд╕реЗрд▓реЗрдб рдХреЛ рдЕрдкрдбреЗрдб рдХрд┐рдпрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡реЗ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЬреАрд╡рд┐рдд рдбреЗрдореЛ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреАрдмреЛрд░реНрдб рдЗрдВрдЯрд░реИрдХреНрд╢рди рдФрд░ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдзрд┐рдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ / рд╕реБрд╡рд┐рдзрд╛рдПрдБ / рдЕрдиреБрдХреВрд▓рди

  • ConfigProvider rtl рднрд╛рд╖рд╛ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП direction рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • рдлреЙрд░реНрдо рдФрд░ рдХреЙрдиреНрдлрд┐рдЧрд░рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдШрдЯрдХ рдЖрдХрд╛рд░ рд╕рд╣рд┐рдд size рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
  • рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдлреА suffix рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред
  • рдкреНрд░рдЧрддрд┐ steps рдЙрдкрд╕рдорд┐рддрд┐ рдЬреЛрдбрд╝рддреА рд╣реИред
  • TextArea onResize рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
  • рдЧреНрд░рд┐рдб flex рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • ......

рдкреВрд░реНрдг рдЕрдкрдбреЗрдЯ рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ

рдХреИрд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ?

рдЙрдиреНрдирдпрди рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдзрд┐рдХрддрдо рдЕрдиреБрдХреВрд▓рддрд╛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреБрдЫ рдЯреВрдЯрдиреЗ рд╡рд╛рд▓реЗ рдмрджрд▓рд╛рд╡ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдХреЛрдбрдореЙрдб рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЙрдиреНрдирдпрди рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред

рд╕рдмрд╕реЗ рдКрдкрд░

рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди 4.0 рдХрд╛ рдЬрдиреНрдо рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕реНрд╡рдпрдВрд╕реЗрд╡рдХреЛрдВ рдХреЗ рдпреЛрдЧрджрд╛рди рдФрд░ рд╕рдорд░реНрдерди рд╕реЗ рдЕрд╡рд┐рднрд╛рдЬреНрдп рд╣реИред rtl рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП @saeedrahimi рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рдВрдЧрддрддрд╛ рдкреИрдХ рдореЗрдВ @shaodahong рдпреЛрдЧрджрд╛рди, рдФрд░ рд╣рд░ рдХреЛрдИ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдпреЛрдЧрджрд╛рди рд╣реИ рдЬреЛ рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдФрд░ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ!


рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди 4.0 рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдВ рд╣реИ!

рдкрд░рд┐рдЪрдп

рд╣рдордиреЗ SEE Conf рдХреЗ рдЕрд╡рд╕рд░ рдкрд░ 4.0 rc рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЕрдВрдд рдореЗрдВ 4.0 рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╢реБрд░реБрдЖрдд рдХреА! рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рд╕реБрдЭрд╛рд╡ рдФрд░ рдпреЛрдЧрджрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА rc рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рдЕрджреНрдпрддрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рдХреБрдЫ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдбрд╝ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдкреВрд░рд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реБрдЖ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╣рд╛рдБ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ https://ant.design

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ v3 рд╕рдВрд╕реНрдХрд░рдг 3.x-stable рд╢рд╛рдЦрд╛ рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рдФрд░ рджрд┐рд╕рдВрдмрд░ 2019 рдореЗрдВ рд░рдЦрд░рдЦрд╛рд╡ рд░рд╛рдЬреНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ред рд╣рдо рдЕрднреА рднреА v3 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрдзреЗ рд╕рд╛рд▓ рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рд░рдЦрд░рдЦрд╛рд╡ рдХреА рд╕рдордп рд╕реАрдорд╛ рдордИ 2020 рд╣реИред

рдбрд┐рдЬрд╛рдЗрди рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЙрдиреНрдирдпрди

рд╣рдордиреЗ рдореВрд▓ рдкрдЯреНрдЯрд┐рдХрд╛ рдХреЛ 4px рд╕реЗ 2px рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ред рдордзреНрдпрдо рдФрд░ рдмреИрдХ-рдПрдВрдб рдЙрддреНрдкрд╛рдж рдкрд╣рд▓реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджрдХреНрд╖рддрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рдЧреЛрд▓ рдХреЛрдиреЗ рдХреА рд╢реИрд▓реА UI рдкрд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рд╣реИред рдЫреЛрдЯреЗ рдЧреЛрд▓ рдХреЛрдиреЛрдВ, рдиреЗрддреНрд░рд╣реАрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реВрдЪрдирд╛ рдкрдврд╝рдиреЗ рдХреА рджрдХреНрд╖рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдЫрд╛рдпрд╛ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╛рдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдЕрдзрд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕реВрдЪрдирд╛ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдбрд╛рд░реНрдХ рдереАрдо

рд╣рдордиреЗ v3 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЙрдиреНрдирдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ v4 рдПрдХ рдЕрдВрдзреЗрд░реЗ рд╡рд┐рд╖рдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдбрд╛рд░реНрдХ рдереАрдо рдкреНрд░рднрд╛рд╡ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдкрд░ рд╕реНрд╡рд┐рдЪ рдереАрдо рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рд╕реАрдорд╛рд╣реАрди рдШрдЯрдХ

рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ, рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╣рд▓реНрдХреЗ рдЪрдпрди рдШрдЯрдХ рд╣реЛрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдирдИ рд╕реАрдорд╛ рд░рд╣рд┐рдд рд╢реИрд▓реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

borderless

рдЕрдиреБрдХреВрд▓рддрд╛ рд╕рдорд╛рдпреЛрдЬрди

рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди 3.0 рдиреЗ IE рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрджреНрдпреЛрдЧ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, IE9 / 10 рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдФрд░ рдШрд░реЗрд▓реВ рд╢реЗрдпрд░ рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд┐рдХреБрдбрд╝ рд░рд╣рд╛ рд╣реИред рд╣рдо рд╕рдВрд╕реНрдХрд░рдг 4.0 рдореЗрдВ рд╣реИрдВ рдФрд░ IE 9/10 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА IE 11 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ)ред рдЗрд╕рд▓рд┐рдП, рдЕрддреАрдд рдореЗрдВ рдХреБрдЫ рдХрдо-рдкреНрд░рджрд░реНрд╢рди рдШрдЯрдХреЛрдВ рдХреЛ рднреА рдирдП рд╕реАрдПрд╕рдПрд╕ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдорд┐рд▓реЗрдЧрд╛ред

рдЙрд╕реА рд╕рдордп, рд╣рдордиреЗ рд░рд┐рдПрдХреНрдЯ рдХреЗ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рднреА рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬреЛ v4 рд░рд┐рдПрдХреНрдЯ 16.9 рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ v4 рд╕рдВрд╕реНрдХрд░рдг рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╣реБрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдХреБрдЫ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдПрдкреАрдЖрдИ рднреА рдирд┐рдХрд╛рд▓реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ v3 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рдереАред рд╣рдо рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ v3 рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХрд╛

[email protected] , рд╣рдордиреЗ svg рдЖрдЗрдХрди рдкреЗрд╢ рдХрд┐рдпрд╛ ( рдХреНрдпреЛрдВ svg рдЖрдЗрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? )ред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдирд╛рдордХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрдЗрдХрди API рдХреЛ рдорд╛рдВрдЧ рдкрд░ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП svg рдЖрдЗрдХрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреИрдХ рдХрд┐рдП рдЧрдП рдЙрддреНрдкрд╛рдж рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред 4.0 рдореЗрдВ, рд╣рдордиреЗ рдкреЗрдбрд╝ рдХреЗ рд╣рд┐рд▓рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдФрд░ рд▓рдЧрднрдЧ 150 KB (Gzipped) рджреНрд╡рд╛рд░рд╛ atd рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрдХреЗрдЬ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдХрди рдЙрдкрдпреЛрдЧ рдПрдкреАрдЖрдИ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ред

рдЖрдЗрдХрди рдЙрдкрдпреЛрдЧ рдХрд╛ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛрдЧрд╛:

import { Icon, Button } from 'antd';

const Demo = () => (
  <div>
    <Icon type="smile" />
    <Button icon="smile" />
  </div>
);

4.0 рдореЗрдВ, рдСрди-рдбрд┐рдорд╛рдВрдб рдкрд░рд┐рдЪрдп рдкрджреНрдзрддрд┐ рдЕрдкрдирд╛рдИ рдЬрд╛рдПрдЧреА:

import { Button } from 'antd';

// tree-shaking supported
- import { Icon } from 'antd';
+ import { SmileOutlined } from '@ant-design/icons';

  const Demo = () => (
    <div>
-     <Icon type="smile" />
+     <SmileOutlined />
      <Button icon={<SmileOutlined />} />
    </div>
  );

  // or directly import
  import SmileOutlined from '@ant-design/icons/SmileOutlined';

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдЖрдХрд╛рд░ (Gzipped) рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рднреА рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рд╣реИ:

bundleSize

рдШрдЯрдХ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ

рд░реВрдк рдлрд┐рд░ рд╕реЗ

рдлреЙрд░реНрдо рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдШрдЯрдХ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдПрдкреАрдЖрдИ рдереЛрдбрд╝рд╛ рдмреЗрдорд╛рдиреА рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ Form.create рдХреА HOC рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдкрддреНрд░ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдШрдЯрдХ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рдБрдзрдиреЗ рдХреЗ рд▓рд┐рдП form.getFieldDecorator рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдкреВрд░реЗ рдлреЙрд░реНрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдлреЙрд░реНрдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЪрд┐рдВрддрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред V4 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдлреЙрд░реНрдо рдХрд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛, рдФрд░ рдЖрдк рд╕реАрдзреЗ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Form.Item рдХреА name рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

- const { form } = this.props;

- const onSubmit = () => {
-   form.validateFields((err, values) => {
-     if (!err) {
-      console.log('Received values of form: ', values);
-    }
-   });
- };

+ const onFinish = (values) => {
+   console.log('Received values of form: ', values);
+ };

- <Form onSubmit={onSubmit}>
+ <Form onFinish={onFinish}>
-   <Form.Item>
+   <Form.Item name="username">
-     {getFieldDecorator('username')(
-       <Input />,
-     )}
+     <Input />
    </Form.Item>
  </Form>

рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗрд╡рд▓ рдлреЙрд░реНрдо рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдореВрд▓реНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо onFinish рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХреЗрд╡рд▓ рдлрд╝реЙрд░реНрдо рдХреЗ рдорд╛рдиреНрдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ validateFields рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлреЙрд░реНрдо рд╣реБрдХ рд╡рд┐рдзрд┐ Form.useForm рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдлреЙрд░реНрдо рдЙрджрд╛рд╣рд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

const [form] = Form.useForm();

React.useEffect(() => {
    form.setFieldValues({ ... });
});

<Form form={form} />

рдЙрд╕реА рд╕рдордп, рд╣рдо рдлреЙрд░реНрдо рд▓рд┐рд╕реНрдЯ рдШрдЯрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реВрдЪреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ:

<Form.List name="names">
  {(fields, { add, remove }) => (
    <div>
      {fields.map(field) => <Form.Item {...field}><Input /></Form.Item>}
      <Button onClick={() => add(initialValue)}>Add</Button>
    </div>
  }
</Form.List>

рддрд╛рд▓рд┐рдХрд╛ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ

рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЙрд▓рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sticky рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдлреЙрд░реНрдо рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЙрд▓рдо рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЦрдкрдд рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред IE 11 рдХреЗ рд▓рд┐рдП рдЬреЛ sticky рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░реЗрдВрдЧреЗред

рдЙрд╕реА рд╕рдордп, рд╣рдо рд╕рд╛рд░рд╛рдВрд╢ рд▓рд╛рдЗрди рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ summary API рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:

рд╕реЙрд░реНрдЯрд░ рдмрд╣реБ-рд╕реНрддрдВрдн рдЫрдБрдЯрд╛рдИ рдХрд╛ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реНрдХ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдЕрдм fixedColumn , expandable , scroll рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред body API рдХреЛ рдХрд╕реНрдЯрдо рддрд╛рд▓рд┐рдХрд╛ рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдЬреИрд╕реЗ рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирдИ DatePicker, TimePicker рдФрд░ рдХреИрд▓реЗрдВрдбрд░

рд╣рдордиреЗ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рджрд┐рдирд╛рдВрдХ рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ moment ред рдЖрдк рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз generate рдкрджреНрдзрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╕реНрдЯрдо рджрд┐рдирд╛рдВрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкрд┐рдХрд░ рдШрдЯрдХ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреБрдХреВрд▓рддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд┐рдХрд░ рдШрдЯрдХ рдЕрднреА рднреА рджрд┐рдирд╛рдВрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ moment рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдХрд╕реНрдЯрдо рддрд┐рдерд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╕рдордп, рддрд┐рдерд┐, рд╕рдкреНрддрд╛рд╣, рдорд╣реАрдирд╛ рдФрд░ рд╡рд░реНрд╖ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╢реНрд░реЗрдгреА рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕реЗ picker рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдм рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП mode рдХреА рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:

<RangePicker />
<RangePicker showTime />
<RangePicker picker="week" />
<RangePicker picker="month" />
<RangePicker picker="year" />

рд░реЗрдВрдЬ рдЪрдпрдирдХрд░реНрддрд╛ рдкрд░, рд╣рдордиреЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред рдЕрдм рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдпрд╛ рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддрд┐рдерд┐ рджрд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред

рдЕрдзрд┐рд╕реВрдЪрдирд╛ / рдореЛрдбрд▓ рд╣реБрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ

рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Modal.xxx рдФрд░ Notification.xxx рдХреЙрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрди рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢рд░реНрдХрд░рд╛ рдХреЗ рд▓рд┐рдП ReactDOM.render рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрджрд░реНрдн рд╣рд╛рдирд┐ рдХреА рд╕рдорд╕реНрдпрд╛ рднреА рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдо рд╣реБрдХ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдиреЛрдбреНрд╕ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХреЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

const [api, contextHolder] = notification.useNotification();

return (
  <Context1.Provider value="Ant">
    {/* contextHolder is in Context1 which mean api will not get context of Context1 */}
    {contextHolder}
    <Context2.Provider value="Design">
      {/* contextHolder is out of Context2 which mean api will not get context of Context2 */}
    </Context2.Provider>
  </Context1.Provider>
);

рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓

V4 рдореЗрдВ, рд╣рдордиреЗ рдЯреНрд░реА, рдЯреНрд░реАрд╕реЗрд▓реЗрдХреНрдЯ, рдФрд░ рд╕реЗрд▓реЗрдХреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдСрдкреНрд╢рди рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬреАрд╡рд┐рдд рдбреЗрдореЛ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреАрдмреЛрд░реНрдб рдЗрдВрдЯрд░реИрдХреНрд╢рди рдФрд░ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдХреЛ рднреА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдзрд┐рдХ рдирдП рдХрд╛рд░реНрдп / рд╕реБрд╡рд┐рдзрд╛рдПрдБ / рдЕрдиреБрдХреВрд▓рди рднрд╛рдЧреЛрдВ

  • ConfigProvider rtl рднрд╛рд╖рд╛ рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП direction рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • рдлреЙрд░реНрдо рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрдкреНрд░реЛрдЗрдбрд░ рдШрдЯрдХ рдЖрдХрд╛рд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП size рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
  • рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдлреА suffix рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • рдкреНрд░рдЧрддрд┐ steps рдмрд╛рд▓ рдШрдЯрдХ рдЬреЛрдбрд╝рддреА рд╣реИред
  • TextArea onResize рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
  • рдЧреНрд░рд┐рдб flex рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • ......

рдкреВрд░реНрдг рдЕрдкрдбреЗрдЯ рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╣реИрдВ ред

рдХреИрд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ?

рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдиреНрдирдпрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдзрд┐рдХрддрдо рдЕрдиреБрдХреВрд▓рддрд╛ рдмрдирд╛рдП рд░рдЦреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреБрдЫ рдЯреВрдЯрдиреЗ рд╡рд╛рд▓реЗ рдмрджрд▓рд╛рд╡ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХреЛрдбрдореЙрдб рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреАред рдХреГрдкрдпрд╛ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ

рдЙрдкрд░реЛрдХреНрдд

рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди 4.0 рдХрд╛ рдЬрдиреНрдо рд╕рдореБрджрд╛рдп рдХреЗ рд╕реНрд╡рдпрдВрд╕реЗрд╡рдХреЛрдВ рдХреЗ рдпреЛрдЧрджрд╛рди рдФрд░ рд╕рдорд░реНрдерди рд╕реЗ рдЕрд╡рд┐рднрд╛рдЬреНрдп рд╣реИред рдЖрдк @saeedrahimi рдХреЛ рдЕрдиреБрдХреВрд▓рддрд╛ рдкреИрдХреЗрдЬ рдореЗрдВ rtl , @shaodahong рдХреЗ рдпреЛрдЧрджрд╛рди рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЛ рд╕рд╛рдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ

4.x тЬи Announcement

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрдзрд╛рдИ рд╣реЛ!!!

рд╕рднреА 75 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдм рдЖрдк рдЖрдЧреЗ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдЙрдиреНрдирдпрди рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдорд╛рд╣реАрди рдШрдЯрдХ рдХреА рддрд╕реНрд╡реАрд░ рд▓рдЯрдХреА рд╣реБрдИ рд╣реИ

рдмрдзрд╛рдИ! рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдмрдзрд╛рдИ рд╣реЛ!!!

16.8 рдХреЗ рдмрд╛рдж рд╕реЗ рд╣реБрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреИрдХреЗрдЬ.рдЬреЙрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ 16.8 рд╣реИред рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХрддрд╛ 16.9 рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рд╣реИ?

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдм рдЖрдк рдЖрдЧреЗ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

next.ant.design рдСрдЯреЛ рдХреЛ ant.design рдЕрдм рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВред

next.ant.design рдЕрдм ant.design рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред

ЁЯЩПЁЯП╝

рдмрдзрд╛рдИя╝Б рдирдпрд╛ рд░реВрдк рдкреНрд░рджрд░реНрд╢рди рд╢рд╛рдирджрд╛рд░ рд╣реИ

рдУрд▓реА

[рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Modal.xxx рдФрд░ Notification.xxx рдХреЙрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрди рд╕рд┐рдВрдереИрдЯрд┐рдХ рд╢рдХреНрдХрд░ рдХреЗ рд▓рд┐рдП ReactDOM.render рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд░рд┐рдПрдХреНрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрджрд░реНрдн рд╣рд╛рдирд┐ рдХреА рд╕рдорд╕реНрдпрд╛ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ]

рдпрд╣рд╛рдБ ReactDOM.createPortal рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛?рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрднрд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдкреАрдЖрдИ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рджрд┐рдЦрддрд╛ рд╣реИ

@kpaxqin рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рд╕реАрдзреЗ?

рдЖрд░рд╕реА -3 рд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдмрд╣реБрдд рд╕реНрдерд┐рд░ред рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж

рд╡реИрд╕реЗ рднреА, рдЯреЗрдореА рдЖрдЦрд┐рд░рдХрд╛рд░ рд░рд┐рд▓реАрдЬ рд╣реЛ рдЧрдИ рд╣реИ, рдЬрдм рддрдХ Huaxie :) рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ :)

Atd 4.0 рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЦреБрд╢ рдХрд╛рдо рдмрдирд╛рдПрдВ :) :)

рдбрд╛рд░реНрдХ рдореЛрдб рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд▓реА рд░реЗрдЦрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

image

рдбрд╛рд░реНрдХ рдореЛрдб рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд▓реА рд░реЗрдЦрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

image

рдПрдХ рдорд┐рдирдЯ рд░реБрдХреЛ, dark.css рдЧрд╛рдпрдм рд╣реИ, рд╣рдо рд╕рд╛рдЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@ ycjcl868 # 21656 (рдЯрд┐рдкреНрдкрдгреА)

рдХрд┐рдпрд╛ рд╣реБрдЖ

рдЕрдкрдиреЗ рдЖрджрдореА рдХреЗ рдХрд╛рдо рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВ!

рдШрд░реЗрд▓реВ рджрд░реНрдкрдг рд╕рд╛рдЗрдЯ https://ant-design.gitee.io/index-cn рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

antd

рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдЕрдВрдд рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдмрдзрд╛рдИ

рдЕрдВрдд рдореЗрдВ рдЬрд╛рд░реА! рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕реБрд▓рднрддрд╛ рдкрд░ рдХреА рдЧрдИ рдХреЛрдИ рдмрд╛рдд?

рдмрдзрд╛рдИ рд╣реЛ, рд░реВрдк рдХреА рддрд░рд╣

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ, atd ЁЯЩП рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореБрдЭреЗ рдХрд╛рдо рдореЗрдВ atd рдХреА рдХрдореА рд╣реИ, рддреЛ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдореЗрд░рд╛ рдХреИрд░рд┐рдпрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдВрдзреЗрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@ wlc534 рддреИрдпрд╛рд░ рд╣реИред

рдХрдорд╛рд▓ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдирдП рд░реВрдк рд╣реБрдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рд░реЗрдВрдЬрдкрд┐рдХрд░ UX рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреБрдиреМрддреА рдереА, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд▓рдЧрднрдЧ рд╕рд╣реА рд╣реИред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛!

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ !! рдЕрдЧрд░ рд╣рдо рдХрдо рдХреЗ рдбрд┐рдк рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рддреЛ рдпрд╣ рд╕рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛрдЧрд╛ !!

рдЕрдВрдд рдореЗрдВ, рджреЗрд╡рддреБрд▓ рдореЗрдВ рдЙрди рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓рд┐рдпрд╛ред рдЕрдЪреНрдЫреА рдЦреБрд╢рдмреБ рд╣реИ...

рдмрдзрд╛рдИ !!! рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЗрд╕рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛

рдмрд╛рд╣рд░ рд╣реИред рдпрд╣ рдЕрдиреБрд╡рд╛рдж рдереЛрдбрд╝рд╛ рдЪрд┐рдВрдЧрд▓рд┐рд╢ рд╣реИ .. рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ

рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдФрд░ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИред ЁЯСН
рдХреБрдЫ рдЬрдЧрд╣реЛрдВ рдкрд░ рдореИрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реВрдВ, рдЕрдЧрд▓реЗ рдХреА рдЫрд╛рдпрд╛ рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ 2px рдЧреЛрд▓ рдХреЛрдиреЛрдВ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдирд╛ рд╣реИред

рджреЛрдкрд╣рд░ рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдЙрдкрдХрд░рдг рд▓рд┐рдЦрд╛ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ form 4 getFieldDecorator , v4 рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, https://github.com/AshoneA-dd-form-form- рдкреНрд░рд╡рд╛рд╕

рдпрд╣рд╛рдВ 4.0 рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдФрд░ рдЙрдиреНрдирдпрди рдкрд░ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ, рдЬреЛ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ: рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди 4.0 рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдзреНрдпрдпрди

Google рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдиреАрдЪреЗ рдПрдХ рдЪреАрдиреА рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди Google рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдкреНрд░рднрд╛рд╡ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ ...

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд┐рдЫрд▓реЗ рд╕рд┐рддрдВрдмрд░ (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░ рдкреВрд░реЗ рд░рд╛рд╕реНрддреЗ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛редрдзрдиреНрдпрд╡рд╛рдж

@PeiTianHuang рдкрд╣рд▓реЗ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдХрд╕реНрдЯрдо рд╕реНрдЯрд╛рдЗрд▓ рдХрд╡рд░реЗрдЬ рд╣реИ, рдЕрдЧрд░ рд╡рд╣ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдирдП рд╕рд╛рд▓ рдХреЗ рдЙрдкрд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВред рдЖрдкрдиреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред

image
export default Form.create()(DepartmentModal);
3.0 рдЙрдиреНрдирдпрди, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП

рдЕрдВрдд рдореЗрдВ рдорд╛рдВрдЧ рдкрд░ рдлрд╝реЙрдиреНрдЯ рдЖрдЗрдХрди рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реА рдмрдВрдбрд▓ рдлрд╝рд╛рдЗрд▓ рдЕрдм рдЫреЛрдЯреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЖрдИрдЯреА рдХреЗ рджреБрдГрдЦреА рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЖрдкрдиреЗ LASS рдХреЛ SASS рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реЗ рдХреБрдЫ рдФрд░ рдмреЗрд╣рддрд░ рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ рдЫреЛрдбрд╝рд╛ред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреНрд░реЛ рдпреВрдЖрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдпрд╣ рдХреНрд░рдордмрджреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд╕реНрд╡реИрдк рд╡рд┐рд╖рдп рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ MUI рдХреЗ рд╕рд╛рде рдЗрддрдирд╛ рд╕рд░рд▓ рд╣реИ

рд╣реБрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВ = = 16.8.0 рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ?

4.0 https://github.com/ant-design/ant-design/issues/12430 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдлрд┐рд░ рд╕реЗ рд╣реБрдИ

4.0 рдмрдЧ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВ

рдЪрд┐рдпрд░реНрд╕!
рдЖрдЗрдП рдЗрд╕ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕рднреА рдмрдЧреНрд╕ рдХреЛ рдвреВрдВрдвреЗрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ!

рдмрд┐рдирд╛ рдЕрднрд┐рдХреЗрд░рдг рдХреЗ рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдмрд╕ рд╕рд╛рджрд╛ рд╕реА.рдПрд╕.рдПрд╕.

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рдХреЛ 16.9 рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдХреБрдЫ рдирд┐рд░реНрдпрд╛рдд рдХрдмреНрдЬ рдбреЗрдЯрд╛ = {рдирд┐рд░рдВрддрд░} рд╕реЗ рдкрд╣рд▓реЗ, рд▓реЙрдЧ рдЖрдпрд╛рдд рдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рджреМрд░рд╛рди {рдбреЗрдЯрд╛: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд} рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ ??? form.item рдХрд╛ рдирд╛рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрдм рдПрдмреАрд╕реА рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? ?

@ рд╢реЙрди-рд╣рд┐рдордкрд╛рдд
https://ant.design/docs/react/migration-v4-cn
https://ant.design/components/form/v3-cn/

image

@ yoyo837 рддреАрди рдореБрдВрд╣, рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЛ

const validateMessages = {
  required: "'${name}' цШпх┐ЕщАЙхнЧцо╡",
  // ...
};

рдЗрд╕ $ {рдирд╛рдо} рдореЗрдВ рдХреМрди рд╕реЗ рдореВрд▓реНрдп рд▓рд┐рдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ

рдкрддрди рдореЗрдВ рдХреЛрдИ рднреА рдЕрд╕рдлрд▓?
<Collapse/> <Collapse.Panel> рдХреАрдЯ + рдПрдВрдЬрд╛рдЗрдо рдореЗрдВ рдореБрдЭреЗ рдпрд╣ рджреЗрддрд╛ рд╣реИ:

TypeError: (0 , _insertCss.insertCss) is not a function
  in IconReact (created by ForwardRef(AntdIcon))
        in span (created by ForwardRef(AntdIcon))
        in ForwardRef(AntdIcon) (created by ForwardRef(RightOutlined))
        in ForwardRef(RightOutlined) (created by CollapsePanel)
        in div (created by CollapsePanel)
        in div (created by CollapsePanel)
        in CollapsePanel (created by Context.Consumer)
        in CollapsePanel (created by Collapse)
        in div (created by Collapse)
        in Collapse (created by Context.Consumer)
        in Collapse (created by Collapse)

/@ant-design/icons/lib/utils.js:110:32

22328 рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ rtl.less рдХреЗ рд╕рд╛рде Cascader рдШрдЯрдХ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдореБрджреНрджрд╛ рд╣реИред

рдХрд┐рд╕реА рдореБрджреНрджреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдЦреЗрдж рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рдореБрджреНрджреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝рд╛ рд╕рдВрдШрд░реНрд╖ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

Input.password рдкреНрд░рддреНрдпрдп рдХреЛ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрд╛

4.0 рдХреНрдпрд╛ рдЯреЗрдмрд▓ рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЙрд▓рдо рдирд┐рд╢реНрдЪрд┐рдд рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдирд┐рд╢реНрдЪрд┐рдд рдХреЙрд▓рдо рдЕрдорд╛рдиреНрдп рд╣реИ

рдХрд┐рд╕реА рднреА рд╢рдмреНрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрдм npm рдкреИрдХреЗрдЬ 4.0 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

@DenisMirandaJ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рд╣реИред

@stolenng рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдВрдЬрд╛рдЗрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣реБрдХ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, https://github.com/enzymejs/enzyme/issues/2011 рджреЗрдЦреЗрдВ

Atd4 рдХреЗ рд╕рднреА рдкреЙрдк-рдЕрдк рдШрдЯрдХ IE рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?
IE11 IE рдардВрдб рдХреЗ рддрд╣рдд, ing рдПрдХ рдмрд╛рд░ рдЪрдордХрддреА рд╣реИ
https://ant.design/components/dropdown-cn/

рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдПрдХ рдирдИ рд╕реАрдЖрд░рдП рдЪреАрдВрдЯреА рдбрд┐рдЬрд╛рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ, рдореЗрд░реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рд▓реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд░рд╣реА рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрд╕рдПрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛

рдбреЙрдХреНрд╕ рдЕрдзрд┐рдХ рджрд┐рдЦрд╛рдИ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ? рд╣рдо рдХреЗрд╡рд▓ v3 рдХреЛ рд╣реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдбреЙрдХреНрд╕ рдЕрдзрд┐рдХ рджрд┐рдЦрд╛рдИ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ? рд╣рдо рдХреЗрд╡рд▓ v3 рдХреЛ рд╣реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

@zombieJ

рдЗрддрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рд╕реЗ рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ:
рдЕрдЧрд░ (рдЧрд▓рдд!) {
this.props.history.push ( '/');
}
рд╕реМрднрд╛рдЧреНрдп!
ЁЯСН

рдЬрдм atd3.0 рдХреЛ atd4.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрдиреВ рдмрд╛рд░ рдореЗрдВ рдЖрдЗрдХрди рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдореВрд▓ рдЖрдЗрдХрди рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдмрд╛рд░ рдХреЛ рдХрдИ рдорджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдереЛрдбрд╝реЗ рд╕рдордп рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ 3.0 рдлрд╝реЙрдиреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ? рдЕрдм рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ

atd4ред * рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП next.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
./node_modules/antd/lib/locale/et_EE.d.ts 1: 8
рдореЙрдбреНрдпреВрд▓ рдкрд╛рд░реНрд╕ рд╡рд┐рдлрд▓: рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЯреЛрдХрди (1: 8)
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд▓реЛрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдШреЛрд╖рдгрд╛рдкрддреНрд░ const _default: {
| рд▓реЛрдХреЗрд▓: рд╕реНрдЯреНрд░рд┐рдВрдЧ
| рдЕрдВрдХреБрд░рдг: рдХреЛрдИ рднреА;
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛

рднрд╛рдЗрдпреЛрдВ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рднреА рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ atd рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 4.1.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдордп рдЪрдпрдирдХрд░реНрддрд╛ IE11 рдХреЗ рддрд╣рдд рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рднрд╛рдЗрдпреЛрдВ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рднреА рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ atd рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 4.1.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдордп рдЪрдпрдирдХрд░реНрддрд╛ IE11 рдХреЗ рддрд╣рдд рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, DatePicker рдФрд░ RangePicker

рдЬрд┐рди рднрд╛рдЗрдпреЛрдВ рдХреЛ IE рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ

рдЬрдм next.js рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдЖрдЧреЗ рджреЗрдЦреЗрдВ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

yangbin1994 picture yangbin1994  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

longhuasishen picture longhuasishen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mineralres picture mineralres  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tianyacsdn picture tianyacsdn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alanwei0 picture alanwei0  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ