{"meta":"<p>&#x8868;&#x5355;&#x6570;&#x636E;&#x7BA1;&#x7406;&#x7EC4;&#x4EF6;&#x3002;</p>\n<h2 id=\"&#x4F55;&#x65F6;&#x4F7F;&#x7528;\">&#x4F55;&#x65F6;&#x4F7F;&#x7528; <a class=\"header-anchor scroll-count-item\" href=\"#&#x4F55;&#x65F6;&#x4F7F;&#x7528;\" data-scroll-id=\"&#x4F55;&#x65F6;&#x4F7F;&#x7528;\">#</a></h2>\n<p>&#x6D89;&#x53CA;&#x5230;&#x8868;&#x5355;&#x6570;&#x636E;&#x64CD;&#x4F5C;&#x3001;&#x6821;&#x9A8C;&#x7684;&#x5730;&#x65B9;&#x90FD;&#x53EF;&#x4EE5;&#x7528;Field&#x6765;&#x7BA1;&#x7406;&#x6570;&#x636E;&#x3002;&#x548C;&#x7EC4;&#x4EF6;&#x5173;&#x8054;&#x540E;&#x53EF;&#x4EE5;&#x81EA;&#x52A8;&#x5BF9;&#x8868;&#x5355;&#x6570;&#x636E;&#x8FDB;&#x884C;&#x56DE;&#x5199;&#x3001;&#x8BFB;&#x53D6;&#x3001;&#x6821;&#x9A8C;&#x3002;</p>\n<h2 id=\"&#x5982;&#x4F55;&#x4F7F;&#x7528;\">&#x5982;&#x4F55;&#x4F7F;&#x7528; <a class=\"header-anchor scroll-count-item\" href=\"#&#x5982;&#x4F55;&#x4F7F;&#x7528;\" data-scroll-id=\"&#x5982;&#x4F55;&#x4F7F;&#x7528;\">#</a></h2>\n<ul>\n<li>&#x4F7F;&#x7528;Field <code>init</code> &#x8FC7;&#x7684;&#x7EC4;&#x4EF6;, <code>value</code> <code>onChange</code> &#x5FC5;&#x987B;&#x653E;&#x5728; init &#x7684;&#x7B2C;&#x4E09;&#x4E2A;&#x53C2;&#x6570;, &#x5426;&#x5219;&#x6709;&#x53EF;&#x80FD;&#x88AB; init &#x8986;&#x76D6;&#x3002;</li>\n<li><code>Form</code>&#x5DF2;&#x7ECF;&#x548C;<code>Field</code> &#x5728;<code>&#x6570;&#x636E;&#x83B7;&#x53D6;</code>&#x548C;<code>&#x81EA;&#x52A8;&#x6821;&#x9A8C;&#x63D0;&#x793A;</code>&#x65B9;&#x9762;&#x505A;&#x4E86;&#x6DF1;&#x5EA6;&#x4F18;&#x5316;&#xFF0C;&#x5EFA;&#x8BAE;&#x5728;<code>Form</code>&#x4E2D;&#x4F7F;&#x7528;<code>Field</code>, &#x8BF7;&#x67E5;&#x770B; Form demo&#x3002;</li>\n<li>initValue &#x7C7B;&#x4F3C;&#x7EC4;&#x4EF6;&#x7684; defaultValue &#x53EA;&#x6709;&#x5728;&#x7EC4;&#x4EF6;&#x7B2C;&#x4E00;&#x6B21;render&#x7684;&#x65F6;&#x5019;&#x624D;&#x751F;&#x6548;(ajax &#x5F02;&#x6B65;&#x8C03;&#x7528;&#x8BBE;&#x7F6E; initValue &#x53EF;&#x80FD;&#x5DF2;&#x7ECF;&#x9519;&#x8FC7;&#x4E86;&#x7B2C;&#x4E00;&#x6B21;render)</li>\n<li>autoUnmount &#x9ED8;&#x8BA4;&#x6253;&#x5F00;&#x7684;&#xFF0C;&#x5982;&#x679C;&#x9700;&#x8981;&#x4FDD;&#x7559;&#x4F1A; <code>&#x81EA;&#x52A8;&#x5378;&#x8F7D;&#x7684;&#x7EC4;&#x4EF6;</code> &#x6570;&#x636E;&#x8BF7;&#x5173;&#x95ED;&#x6B64;&#x9879;</li>\n<li><code>parseName=true</code> &#x53EF;&#x4EE5;&#x901A;&#x8FC7; <code>getValues</code> &#x83B7;&#x53D6;&#x5230;&#x7ED3;&#x6784;&#x5316;&#x7684;&#x6570;&#x636E;, &#x4F46;&#x662F; getValue &#x8FD8;&#x662F;&#x5FC5;&#x987B;&#x4F20;&#x5B8C;&#x6574; key &#x503C;</li>\n<li><code>PureComponent</code> &#x4E2D;&#x65E0;&#x6CD5;&#x4F7F;&#x7528;&#xFF0C;&#x9664;&#x975E;&#x4F60;&#x5F00;&#x542F; <code>forceUpdate</code> &#x529F;&#x80FD;&#xFF0C;&#x4F46;&#x662F;&#x4F1A;&#x5E26;&#x6765;&#x6027;&#x80FD;&#x95EE;&#x9898;</li>\n</ul>\n<h3 id=\"&#x57FA;&#x672C;&#x4F7F;&#x7528;\">&#x57FA;&#x672C;&#x4F7F;&#x7528; <a class=\"header-anchor scroll-count-item\" href=\"#&#x57FA;&#x672C;&#x4F7F;&#x7528;\" data-scroll-id=\"&#x57FA;&#x672C;&#x4F7F;&#x7528;\">#</a></h3>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">Demo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">React<span class=\"token punctuation\">.</span>Component</span> <span class=\"token punctuation\">{</span>\n    field <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Field</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// &#x5B9E;&#x4F8B;&#x521B;&#x5EFA;</span>\n\n    <span class=\"token function-variable function\">onClick</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=&gt;</span> <span class=\"token punctuation\">{</span>\n        console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span><span class=\"token function\">getValue</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">const</span> init <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span>init<span class=\"token punctuation\">;</span>\n\n        <span class=\"token comment\">// &#x6CE8;&#x610F;&#xFF1A;initValue&#x53EA;&#x4F1A;&#x5728;&#x7EC4;&#x4EF6;&#x7B2C;&#x4E00;&#x6B21;&#x521D;&#x59CB;&#x5316;&#x7684;&#x65F6;&#x5019;&#x88AB;&#x8D4B;&#x503C;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x662F;&#x5F02;&#x6B65;&#x8D4B;&#x503C;&#x8BF7;&#x7528;setValue</span>\n        <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Input</span></span> <span class=\"token spread\"><span class=\"token punctuation\">{</span><span class=\"token operator\">...</span><span class=\"token function\">init</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">initValue</span><span class=\"token operator\">:</span> <span class=\"token string\">&apos;first value&apos;</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>button</span> <span class=\"token attr-name\">onClick</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>onClick<span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">&#x83B7;&#x53D6;&#x6570;&#x636E;</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>button</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n            </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">&gt;</span></span>\n        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<h3 id=\"&#x66F4;&#x65B0;&#x6570;&#x636E;\">&#x66F4;&#x65B0;&#x6570;&#x636E; <a class=\"header-anchor scroll-count-item\" href=\"#&#x66F4;&#x65B0;&#x6570;&#x636E;\" data-scroll-id=\"&#x66F4;&#x65B0;&#x6570;&#x636E;\">#</a></h3>\n<h4>&#x4E8B;&#x4EF6;&#x66F4;&#x65B0;</h4>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">Demo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">React<span class=\"token punctuation\">.</span>Component</span> <span class=\"token punctuation\">{</span>\n    field <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Field</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token function-variable function\">onClick</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=&gt;</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span><span class=\"token function\">setValue</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">,</span> <span class=\"token string\">&apos;newvalue&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// &#x8D4B;&#x503C;&#x4F1A;&#x81EA;&#x52A8;&#x89E6;&#x53D1;render</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">const</span> init <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span>init<span class=\"token punctuation\">;</span>\n\n        <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Input</span></span> <span class=\"token spread\"><span class=\"token punctuation\">{</span><span class=\"token operator\">...</span><span class=\"token function\">init</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>button</span> <span class=\"token attr-name\">onClick</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>onClick<span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">&#x8BBE;&#x7F6E;&#x6570;&#x636E;</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>button</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n            </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">&gt;</span></span>\n        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<h4>props&#x66F4;&#x65B0;</h4>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">Demo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">React<span class=\"token punctuation\">.</span>Component</span> <span class=\"token punctuation\">{</span>\n    field <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Field</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token comment\">// &#x5728;&#x7EC4;&#x4EF6;&#x6302;&#x8F7D;&#x4E4B;&#x524D;&#x628A;&#x6570;&#x636E;&#x8BBE;&#x7F6E;&#x8FDB;&#x53BB;(&#x53EF;&#x4EE5;&#x7528;initValue&#x66FF;&#x4EE3;&#x8FD9;&#x79CD;&#x7528;&#x6CD5;)</span>\n    <span class=\"token function\">componentWillMount</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span><span class=\"token function\">setValue</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">,</span> <span class=\"token string\">&apos;init Name&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token comment\">// &#x63A5;&#x6536;&#x6765;&#x81EA;props&#x7684;&#x6570;&#x636E;</span>\n    <span class=\"token function\">componentWillReceiveProps</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">nextProps</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span><span class=\"token function\">setValue</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">,</span> nextProps<span class=\"token punctuation\">.</span>name<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">const</span> init <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span>init<span class=\"token punctuation\">;</span>\n\n        <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Input</span></span> <span class=\"token spread\"><span class=\"token punctuation\">{</span><span class=\"token operator\">...</span><span class=\"token function\">init</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/&gt;</span></span><span class=\"token plain-text\">\n            </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">&gt;</span></span>\n        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<h4>ajax&#x66F4;&#x65B0;</h4>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">Demo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">React<span class=\"token punctuation\">.</span>Component</span> <span class=\"token punctuation\">{</span>\n    field <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Field</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token function-variable function\">onClick</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=&gt;</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token function\">Ajax</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n            <span class=\"token literal-property property\">url</span><span class=\"token operator\">:</span> <span class=\"token string\">&apos;/demo.json&apos;</span><span class=\"token punctuation\">,</span>\n            <span class=\"token function-variable function\">success</span><span class=\"token operator\">:</span> <span class=\"token parameter\">json</span> <span class=\"token operator\">=&gt;</span> <span class=\"token punctuation\">{</span>\n                <span class=\"token comment\">// &#x56DE;&#x8C03;&#x4E8B;&#x4EF6;&#x4E2D;&#x8D4B;&#x503C;&#x66F4;&#x65B0;</span>\n                <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span><span class=\"token function\">setValue</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">,</span> json<span class=\"token punctuation\">.</span>name<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">const</span> init <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span>init<span class=\"token punctuation\">;</span>\n\n        <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Input</span></span> <span class=\"token spread\"><span class=\"token punctuation\">{</span><span class=\"token operator\">...</span><span class=\"token function\">init</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>button</span> <span class=\"token attr-name\">onClick</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>onClick<span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">&#x8BBE;&#x7F6E;&#x6570;&#x636E;</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>button</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n            </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">&gt;</span></span>\n        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<h4>onChange&#x66F4;&#x65B0;&#x76D1;&#x63A7;</h4>\n<p>&#x4E24;&#x79CD;&#x7528;&#x6CD5;&#xFF1A;</p>\n<ol>\n<li>&#x7EDF;&#x4E00;&#x7BA1;&#x7406;</li>\n</ol>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">Demo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">React<span class=\"token punctuation\">.</span>Component</span> <span class=\"token punctuation\">{</span>\n    field <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Field</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token function-variable function\">onChange</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">name<span class=\"token punctuation\">,</span> value</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=&gt;</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>name<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n                <span class=\"token keyword\">case</span> <span class=\"token string\">&apos;name1&apos;</span><span class=\"token operator\">:</span>\n                    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span><span class=\"token function\">setValue</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name2&apos;</span><span class=\"token punctuation\">,</span> <span class=\"token string\">&apos;value set by name1&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n                <span class=\"token keyword\">case</span> <span class=\"token string\">&apos;name2&apos;</span><span class=\"token operator\">:</span>\n                    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span><span class=\"token function\">setValue</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name1&apos;</span><span class=\"token punctuation\">,</span> <span class=\"token string\">&apos;value set by name2&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">const</span> init <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span>init<span class=\"token punctuation\">;</span>\n\n        <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Input</span></span> <span class=\"token spread\"><span class=\"token punctuation\">{</span><span class=\"token operator\">...</span><span class=\"token function\">init</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name1&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Input</span></span> <span class=\"token spread\"><span class=\"token punctuation\">{</span><span class=\"token operator\">...</span><span class=\"token function\">init</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;name2&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/&gt;</span></span><span class=\"token plain-text\">\n            </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">&gt;</span></span>\n        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<ol start=\"2\">\n<li>&#x5404;&#x81EA;&#x7BA1;&#x7406;</li>\n</ol>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">Demo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">React<span class=\"token punctuation\">.</span>Component</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">const</span> init <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>field<span class=\"token punctuation\">.</span>init<span class=\"token punctuation\">;</span>\n\n        <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Input</span></span>\n                    <span class=\"token attr-name\">{...init(&apos;name1&apos;,</span> <span class=\"token attr-name\">{</span>\n                        <span class=\"token attr-name\"><span class=\"token namespace\">props:</span></span> <span class=\"token attr-name\">{</span>\n                            <span class=\"token attr-name\"><span class=\"token namespace\">onChange:</span></span> <span class=\"token attr-name\">v</span> <span class=\"token attr-name\">=</span><span class=\"token punctuation\">&gt;</span> <span class=\"token attr-name\">{</span>\n                                <span class=\"token attr-name\">this.field.setValue(&apos;name2&apos;,</span> <span class=\"token attr-name\">&apos;value</span> <span class=\"token attr-name\">set</span> <span class=\"token attr-name\">by</span> <span class=\"token attr-name\">name1&apos;);</span>\n                            <span class=\"token attr-name\">},</span>\n                        <span class=\"token attr-name\">},</span>\n                    <span class=\"token attr-name\">})}</span>\n                <span class=\"token punctuation\">/&gt;</span></span><span class=\"token plain-text\">\n                </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Input</span></span>\n                    <span class=\"token attr-name\">{...init(&apos;name2&apos;,</span> <span class=\"token attr-name\">{</span>\n                        <span class=\"token attr-name\"><span class=\"token namespace\">props:</span></span> <span class=\"token attr-name\">{</span>\n                            <span class=\"token attr-name\"><span class=\"token namespace\">onChange:</span></span> <span class=\"token attr-name\">v</span> <span class=\"token attr-name\">=</span><span class=\"token punctuation\">&gt;</span> <span class=\"token attr-name\">{</span>\n                                <span class=\"token attr-name\">this.field.setValue(&apos;name1&apos;,</span> <span class=\"token attr-name\">&apos;value</span> <span class=\"token attr-name\">set</span> <span class=\"token attr-name\">by</span> <span class=\"token attr-name\">name2&apos;);</span>\n                            <span class=\"token attr-name\">},</span>\n                        <span class=\"token attr-name\">},</span>\n                    <span class=\"token attr-name\">})}</span>\n                <span class=\"token punctuation\">/&gt;</span></span><span class=\"token plain-text\">\n            </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">&gt;</span></span>\n        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<p>&#x8BE6;&#x7EC6;&#x8BF7;&#x67E5;&#x770B;demo&#x6F14;&#x793A; <a href=\"#onchange-container\">#&#x5173;&#x8054;&#x63A7;&#x5236;</a>&#x3002;</p>\n","api":"<h2 id=\"API\">API <a class=\"header-anchor scroll-count-item\" href=\"#API\" data-scroll-id=\"API\">#</a></h2>\n<!-- api-extra-start -->\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token keyword\">let</span> myfield <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Field</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">,</span>options<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// &#x6216;&#x8005;&#x4F7F;&#x7528;hooks</span>\n\n<span class=\"token keyword\">let</span> myfield <span class=\"token operator\">=</span> Field<span class=\"token punctuation\">.</span><span class=\"token function\">useField</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>options<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// &#x8981;&#x6C42; react &#x7248;&#x672C; &gt; 16.8</span>\n</code></pre>\n<h3 id=\"Field&#x53C2;&#x6570;&#x8BF4;&#x660E;\">Field&#x53C2;&#x6570;&#x8BF4;&#x660E; <a class=\"header-anchor scroll-count-item\" href=\"#Field&#x53C2;&#x6570;&#x8BF4;&#x660E;\" data-scroll-id=\"Field&#x53C2;&#x6570;&#x8BF4;&#x660E;\">#</a></h3>\n<table>\n<thead>\n<tr>\n<th>&#x53C2;&#x6570;</th>\n<th>&#x8BF4;&#x660E;</th>\n<th>&#x7C7B;&#x578B;</th>\n<th>&#x53EF;&#x9009;&#x503C;</th>\n<th>&#x9ED8;&#x8BA4;&#x503C;</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>this</td>\n<td>&#x4F20;&#x5165;&#x8C03;&#x7528;class&#x7684;this</td>\n<td>React.Component</td>\n<td>&#x5FC5;&#x987B;&#x8BBE;&#x7F6E;</td>\n<td></td>\n</tr>\n<tr>\n<td>options</td>\n<td>&#x4E00;&#x4E9B;&#x4E8B;&#x4EF6;&#x914D;&#x7F6E;, &#x8BE6;&#x7EC6;&#x53C2;&#x6570;&#x5982;&#x4E0B;</td>\n<td>Object</td>\n<td>&#x975E;&#x5FC5;&#x987B;</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Options &#x914D;&#x7F6E;&#x9879;\"><code>options</code> &#x914D;&#x7F6E;&#x9879; <a class=\"header-anchor scroll-count-item\" href=\"#Options &#x914D;&#x7F6E;&#x9879;\" data-scroll-id=\"Options &#x914D;&#x7F6E;&#x9879;\">#</a></h3>\n<table>\n<thead>\n<tr>\n<th>&#x53C2;&#x6570;</th>\n<th>&#x8BF4;&#x660E;</th>\n<th>&#x7C7B;&#x578B;</th>\n<th>&#x9ED8;&#x8BA4;&#x503C;</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>onChange</td>\n<td>&#x6240;&#x6709;&#x7EC4;&#x4EF6;&#x7684;change&#x90FD;&#x4F1A;&#x5230;&#x8FBE;&#x8FD9;&#x91CC;[setValue&#x4E0D;&#x4F1A;&#x89E6;&#x53D1;&#x8BE5;&#x51FD;&#x6570;]</td>\n<td>Function(name,value)</td>\n<td></td>\n</tr>\n<tr>\n<td>parseName</td>\n<td>&#x662F;&#x5426;&#x7FFB;&#x8BD1;<code>init(name)</code>&#x4E2D;&#x7684;<code>name</code>(getValues&#x4F1A;&#x628A;&#x5E26;<code>.</code>&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x8F6C;&#x6362;&#x6210;&#x5BF9;&#x8C61;)</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>forceUpdate</td>\n<td>&#x4EC5;&#x5EFA;&#x8BAE;PureComponent&#x7684;&#x7EC4;&#x4EF6;&#x6253;&#x5F00;&#x6B64;&#x5F3A;&#x5236;&#x5237;&#x65B0;&#x529F;&#x80FD;&#xFF0C;&#x4F1A;&#x5E26;&#x6765;&#x6027;&#x80FD;&#x95EE;&#x9898;(500&#x4E2A;&#x7EC4;&#x4EF6;&#x4E3A;&#x4F8B;&#xFF1A;&#x6253;&#x5F00;&#x7684;&#x65F6;&#x5019;render&#x82B1;&#x8D39;700ms, &#x5173;&#x95ED;&#x65F6;&#x5019;render&#x82B1;&#x8D39;400ms)</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>scrollToFirstError</td>\n<td>field.validate&#x7684;&#x65F6;&#x5019;&#x6EDA;&#x52A8;&#x5230;&#x7B2C;&#x4E00;&#x4E2A;&#x51FA;&#x9519;&#x7684;&#x7EC4;&#x4EF6;, &#x5982;&#x679C;&#x662F;&#x6574;&#x6570;&#x4F1A;&#x8FDB;&#x884C;&#x504F;&#x79FB;, &#x6D4F;&#x89C8;&#x5668;&#x517C;&#x5BB9;&#x6027;&#x5173;&#x6CE8;<code>scrollIntoViewIfNeeded</code></td>\n<td>Boolean/Number</td>\n<td>true</td>\n</tr>\n<tr>\n<td>autoUnmount</td>\n<td>&#x81EA;&#x52A8;&#x5220;&#x9664;Unmout&#x5143;&#x7D20;&#xFF0C;&#x5982;&#x679C;&#x60F3;&#x4FDD;&#x7559;&#x6570;&#x636E;&#x53EF;&#x4EE5;&#x8BBE;&#x7F6E;&#x4E3A;false</td>\n<td>Boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>autoValidate</td>\n<td>&#x662F;&#x5426;&#x4FEE;&#x6539;&#x6570;&#x636E;&#x7684;&#x65F6;&#x5019;&#x5C31;&#x81EA;&#x52A8;&#x89E6;&#x53D1;&#x6821;&#x9A8C;, &#x8BBE;&#x4E3A; false &#x540E;&#x53EA;&#x80FD;&#x901A;&#x8FC7; validate() &#x6765;&#x89E6;&#x53D1;&#x6821;&#x9A8C;</td>\n<td>Boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>values</td>\n<td>&#x521D;&#x59CB;&#x5316;&#x6570;&#x636E;</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"&#x63A5;&#x53E3;&#x8BF4;&#x660E;\">&#x63A5;&#x53E3;&#x8BF4;&#x660E; <a class=\"header-anchor scroll-count-item\" href=\"#&#x63A5;&#x53E3;&#x8BF4;&#x660E;\" data-scroll-id=\"&#x63A5;&#x53E3;&#x8BF4;&#x660E;\">#</a></h3>\n<p><code>new</code>&#x4E4B;&#x540E;&#x7684;&#x5BF9;&#x8C61;&#x63D0;&#x4F9B;&#x7684;api&#x63A5;&#x53E3; &#xFF08;&#x4F8B;&#xFF1A;<code>myfield.getValues()</code>&#xFF09;(<code>set</code> &#x5F00;&#x5934;&#x7684;api&#x51FD;&#x6570;&#x4E0D;&#x8981;&#x5728;render&#x91CC;&#x9762;&#x64CD;&#x4F5C;, &#x53EF;&#x80FD;&#x4F1A;&#x89E6;&#x53D1;&#x6B7B;&#x5FAA;&#x73AF;)</p>\n<table>\n<thead>\n<tr>\n<th>&#x53C2;&#x6570;</th>\n<th>&#x8BF4;&#x660E;</th>\n<th>&#x7C7B;&#x578B;</th>\n<th>&#x53EF;&#x9009;&#x503C;</th>\n<th>&#x9ED8;&#x8BA4;&#x503C;</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>init</td>\n<td>&#x521D;&#x59CB;&#x5316;&#x6BCF;&#x4E2A;&#x7EC4;&#x4EF6;&#xFF0C;<a href=\"#init%E5%87%BD%E6%95%B0\">&#x8BE6;&#x7EC6;&#x53C2;&#x6570;&#x5982;#init&#x51FD;&#x6570;</a></td>\n<td>Function(name:String, option:Object)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>getValues</td>\n<td>&#x83B7;&#x53D6;&#x4E00;&#x7EC4;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684;&#x503C;&#xFF0C;&#x5982;&#x4E0D;&#x4F20;&#x5165;&#x53C2;&#x6570;&#xFF0C;&#x5219;&#x83B7;&#x53D6;&#x5168;&#x90E8;&#x7EC4;&#x4EF6;&#x7684;&#x503C;</td>\n<td>Function([names: String[]])</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>getValue</td>\n<td>&#x83B7;&#x53D6;&#x5355;&#x4E2A;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684;&#x503C;</td>\n<td>Function(name: String)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>setValues</td>\n<td>&#x8BBE;&#x7F6E;&#x4E00;&#x7EC4;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684;&#x503C;&#xFF08;&#x4F1A;&#x89E6;&#x53D1;render&#xFF0C;&#x8BF7;&#x9075;&#x5FAA;react&#x65F6;&#x673A;&#x4F7F;&#x7528;)</td>\n<td>Function(obj: Object)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>setValue</td>\n<td>&#x8BBE;&#x7F6E;&#x5355;&#x4E2A;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684;&#x503C; &#xFF08;&#x4F1A;&#x89E6;&#x53D1;render&#xFF0C;&#x8BF7;&#x9075;&#x5FAA;react&#x65F6;&#x673A;&#x4F7F;&#x7528;)</td>\n<td>Function(name: String, value)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>validate</td>\n<td>&#x6821;&#x9A8C;&#x5E76;&#x83B7;&#x53D6;&#x4E00;&#x7EC4;&#x8F93;&#x5165;&#x57DF;&#x7684;&#x503C;&#x4E0E; Error</td>\n<td>Function([names: String[]], callback: Function(errors, values))</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>getError</td>\n<td>&#x83B7;&#x53D6;&#x5355;&#x4E2A;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684; Error</td>\n<td>Function(name: String)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>getErrors</td>\n<td>&#x83B7;&#x53D6;&#x4E00;&#x7EC4;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684; Error</td>\n<td>Function([name: String])</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>setError</td>\n<td>&#x8BBE;&#x7F6E;&#x5355;&#x4E2A;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684; Error</td>\n<td>Function(name: String, errors:String/Array[String])</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>setErrors</td>\n<td>&#x8BBE;&#x7F6E;&#x4E00;&#x7EC4;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684; Error</td>\n<td>Function(obj: Object)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>reset</td>\n<td>&#x91CD;&#x7F6E;&#x4E00;&#x7EC4;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684;&#x503C;&#x3001;&#x6E05;&#x7A7A;&#x6821;&#x9A8C;</td>\n<td>Function([names: String[]])</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>resetToDefault</td>\n<td>&#x91CD;&#x7F6E;&#x4E00;&#x7EC4;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x7684;&#x503C;&#x4E3A;&#x9ED8;&#x8BA4;&#x503C;</td>\n<td>Function([names: String[]])</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>getState</td>\n<td>&#x5224;&#x65AD;&#x6821;&#x9A8C;&#x72B6;&#x6001;</td>\n<td>Function(name: String)</td>\n<td>&apos;error&apos; &apos;success&apos; &apos;loading&apos; &apos;&apos;</td>\n<td>&apos;&apos;</td>\n</tr>\n<tr>\n<td>getNames</td>\n<td>&#x83B7;&#x53D6;&#x6240;&#x6709;&#x7EC4;&#x4EF6;&#x7684;key</td>\n<td>Function()</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>remove</td>\n<td>&#x5220;&#x9664;&#x67D0;&#x4E00;&#x4E2A;&#x6216;&#x8005;&#x4E00;&#x7EC4;&#x63A7;&#x4EF6;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x5220;&#x9664;&#x540E;&#x4E0E;&#x4E4B;&#x76F8;&#x5173;&#x7684;validate/value&#x90FD;&#x4F1A;&#x88AB;&#x6E05;&#x7A7A;</td>\n<td>Function(name: String/String[])</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>addArrayValue</td>\n<td>&#x6DFB;&#x52A0; name &#x662F;&#x6570;&#x7EC4;&#x683C;&#x5F0F;&#x7684;&#x6570;&#x636E;, &#x5E76;&#x4E14;&#x81EA;&#x52A8;&#x5904;&#x7406;&#x5176;&#x4ED6; name &#x7684;&#x6570;&#x7EC4;&#x9519;&#x4F4D;&#x95EE;&#x9898;</td>\n<td>Function(key: String, index: Number, value1, value2, ...)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>deleteArrayValue</td>\n<td>&#x5220;&#x9664; name &#x662F;&#x6570;&#x7EC4;&#x683C;&#x5F0F;&#x7684;&#x6570;&#x636E;, &#x5E76;&#x4E14;&#x81EA;&#x52A8;&#x5904;&#x7406;&#x5176;&#x4ED6; name &#x7684;&#x6570;&#x7EC4;&#x9519;&#x4F4D;&#x95EE;&#x9898;</td>\n<td>Function(key: String, index: Number, howmany)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>watch</td>\n<td>&#x76D1;&#x542C;&#x5B57;&#x6BB5;&#x503C;&#x53D8;&#x5316;</td>\n<td>Function(names: String[], callback: Function(name: String, value: any, oldValue: any, triggerType: &apos;init&apos; | &apos;change&apos; | &apos;setValue&apos; | &apos;unmount&apos; | &apos;reset&apos;))</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Init&#x51FD;&#x6570;\">init&#x51FD;&#x6570; <a class=\"header-anchor scroll-count-item\" href=\"#Init&#x51FD;&#x6570;\" data-scroll-id=\"Init&#x51FD;&#x6570;\">#</a></h3>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token function\">init</span><span class=\"token punctuation\">(</span>name<span class=\"token punctuation\">,</span> options<span class=\"token punctuation\">,</span> props<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>\n<p>&#x8FD4;&#x56DE;&#x503C;</p>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token punctuation\">{</span>\n    id<span class=\"token punctuation\">,</span> value<span class=\"token punctuation\">,</span> onChange<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<table>\n<thead>\n<tr>\n<th>&#x53C2;&#x6570;</th>\n<th>&#x8BF4;&#x660E;</th>\n<th>&#x7C7B;&#x578B;</th>\n<th>&#x53EF;&#x9009;&#x503C;</th>\n<th>&#x9ED8;&#x8BA4;&#x503C;</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>&#x5FC5;&#x586B;&#x8F93;&#x5165;&#x63A7;&#x4EF6;&#x552F;&#x4E00;&#x6807;&#x5FD7;</td>\n<td>String</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>options.valueName</td>\n<td>&#x7EC4;&#x4EF6;&#x503C;&#x7684;&#x5C5E;&#x6027;&#x540D;&#x79F0;&#xFF0C;&#x5982; Checkbox &#x7684;&#x662F; <code>checked</code>&#xFF0C;Input&#x662F; <code>value</code></td>\n<td>String</td>\n<td></td>\n<td>&apos;value&apos;</td>\n</tr>\n<tr>\n<td>options.initValue</td>\n<td>&#x7EC4;&#x4EF6;&#x521D;&#x59CB;&#x503C;(&#x7EC4;&#x4EF6;&#x7B2C;&#x4E00;&#x6B21;render&#x7684;&#x65F6;&#x5019;&#x624D;&#x4F1A;&#x8BFB;&#x53D6;&#xFF0C;&#x540E;&#x9762;&#x518D;&#x4FEE;&#x6539;&#x6B64;&#x503C;&#x65E0;&#x6548;),&#x7C7B;&#x4F3C;defaultValue</td>\n<td>any</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>options.trigger</td>\n<td>&#x89E6;&#x53D1;&#x6570;&#x636E;&#x53D8;&#x5316;&#x7684;&#x4E8B;&#x4EF6;&#x540D;&#x79F0;</td>\n<td>String</td>\n<td></td>\n<td>&apos;onChange&apos;</td>\n</tr>\n<tr>\n<td>options.rules</td>\n<td>&#x6821;&#x9A8C;&#x89C4;&#x5219;</td>\n<td>Array/Object</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>options.getValueFormatter</td>\n<td>&#x81EA;&#x5B9A;&#x4E49;&#x4ECE;&#x7EC4;&#x4EF6;&#x83B7;&#x53D6; <code>value</code> &#xFF0C;&#x8BE6;&#x7EC6;&#x7528;&#x6CD5;&#x67E5;&#x770B;demo <code>&#x81EA;&#x5B9A;&#x4E49;&#x6570;&#x636E;&#x83B7;&#x53D6;</code></td>\n<td>Function(value,...args) &#x53C2;&#x6570;&#x987A;&#x5E8F;&#x548C;&#x7EC4;&#x4EF6;&#x662F;&#x5B8C;&#x5168;&#x4E00;&#x81F4;&#x7684;</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>options.setValueFormatter</td>\n<td>&#x81EA;&#x5B9A;&#x4E49;&#x8F6C;&#x6362; <code>value</code> &#x5230;&#x7EC4;&#x4EF6; &#xFF0C;&#x8BE6;&#x7EC6;&#x7528;&#x6CD5;&#x67E5;&#x770B;demo <code>&#x81EA;&#x5B9A;&#x4E49;&#x6570;&#x636E;&#x83B7;&#x53D6;</code></td>\n<td>Function(value)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>props</td>\n<td>&#x7EC4;&#x4EF6;&#x81EA;&#x5B9A;&#x4E49;&#x7684;&#x4E8B;&#x4EF6;&#x53EF;&#x4EE5;&#x5199;&#x5728;&#x8FD9;&#x91CC;</td>\n<td>Object</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>autoValidate</td>\n<td>&#x662F;&#x5426;&#x4FEE;&#x6539;&#x6570;&#x636E;&#x7684;&#x65F6;&#x5019;&#x81EA;&#x52A8;&#x89E6;&#x53D1;&#x6821;&#x9A8C;&#x5355;&#x4E2A;&#x7EC4;&#x4EF6;&#x7684;&#x6821;&#x9A8C;, &#x8BBE;&#x4E3A; false &#x540E;&#x53EA;&#x80FD;&#x901A;&#x8FC7; validate() &#x6765;&#x89E6;&#x53D1;&#x6821;&#x9A8C;</td>\n<td>Boolean</td>\n<td>true</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Rules&#x53C2;&#x6570;\">rules&#x53C2;&#x6570; <a class=\"header-anchor scroll-count-item\" href=\"#Rules&#x53C2;&#x6570;\" data-scroll-id=\"Rules&#x53C2;&#x6570;\">#</a></h3>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">rules</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">required</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<p>&#x591A;&#x4E2A;rule</p>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">rules</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">required</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">trigger</span><span class=\"token operator\">:</span> <span class=\"token string\">&apos;onBlur&apos;</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n        <span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">pattern</span><span class=\"token operator\">:</span> <span class=\"token regex\"><span class=\"token regex-delimiter\">/</span><span class=\"token regex-source language-regex\">abcd</span><span class=\"token regex-delimiter\">/</span></span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">message</span><span class=\"token operator\">:</span> <span class=\"token string\">&apos;abcd&#x4E0D;&#x80FD;&#x7F3A;&apos;</span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">trigger</span><span class=\"token operator\">:</span> <span class=\"token string\">&apos;onChange&apos;</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n        <span class=\"token punctuation\">{</span>\n            <span class=\"token function-variable function\">validator</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">rule<span class=\"token punctuation\">,</span> value<span class=\"token punctuation\">,</span> callback</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=&gt;</span> <span class=\"token punctuation\">{</span>\n                <span class=\"token function\">callback</span><span class=\"token punctuation\">(</span><span class=\"token string\">&apos;&#x51FA;&#x9519;&#x4E86;&apos;</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<table>\n<thead>\n<tr>\n<th>&#x53C2;&#x6570;</th>\n<th>&#x8BF4;&#x660E;</th>\n<th>&#x7C7B;&#x578B;</th>\n<th>&#x53EF;&#x9009;&#x503C;</th>\n<th>&#x4F7F;&#x7528;&#x7C7B;&#x578B;</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>required</td>\n<td>&#x4E0D;&#x80FD;&#x4E3A;&#x7A7A;</td>\n<td>Boolean</td>\n<td>true</td>\n<td><code>undefined/null/&#x201C;&#x201D;/[]</code> &#x4F1A;&#x89E6;&#x53D1;&#x6B64;&#x89C4;&#x5219;)</td>\n</tr>\n<tr>\n<td>pattern</td>\n<td>&#x6821;&#x9A8C;&#x6B63;&#x5219;&#x8868;&#x8FBE;&#x5F0F;</td>\n<td>&#x6B63;&#x5219;</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>minLength</td>\n<td>&#x5B57;&#x7B26;&#x4E32;&#x6700;&#x5C0F;&#x957F;&#x5EA6; / &#x6570;&#x7EC4;&#x6700;&#x5C0F;&#x4E2A;&#x6570;</td>\n<td>Number</td>\n<td></td>\n<td>String/Number/Array</td>\n</tr>\n<tr>\n<td>maxLength</td>\n<td>&#x5B57;&#x7B26;&#x4E32;&#x6700;&#x5927;&#x957F;&#x5EA6; / &#x6570;&#x7EC4;&#x6700;&#x5927;&#x4E2A;&#x6570;</td>\n<td>Number</td>\n<td></td>\n<td>String/Number/Array</td>\n</tr>\n<tr>\n<td>length</td>\n<td>&#x5B57;&#x7B26;&#x4E32;&#x7CBE;&#x786E;&#x957F;&#x5EA6; / &#x6570;&#x7EC4;&#x7CBE;&#x786E;&#x4E2A;&#x6570;</td>\n<td>Number</td>\n<td></td>\n<td>String/Number/Array</td>\n</tr>\n<tr>\n<td>min</td>\n<td>&#x6700;&#x5C0F;&#x503C;</td>\n<td>Number</td>\n<td></td>\n<td>String/Number</td>\n</tr>\n<tr>\n<td>max</td>\n<td>&#x6700;&#x5927;&#x503C;</td>\n<td>Number</td>\n<td></td>\n<td>String/Number</td>\n</tr>\n<tr>\n<td>format</td>\n<td>&#x5BF9;&#x5E38;&#x7528; pattern &#x7684;&#x603B;&#x7ED3;</td>\n<td>String</td>\n<td>url&#x3001;email&#x3001;tel&#x3001;number</td>\n<td>String</td>\n</tr>\n<tr>\n<td>validator</td>\n<td>&#x81EA;&#x5B9A;&#x4E49;&#x6821;&#x9A8C;, &#x6821;&#x9A8C;&#x7684;&#x7ED3;&#x679C;&#x901A;&#x8FC7;&#x7528;&#x6237;&#x4F20;&#x9012;&#x7ED9; callback &#x7684;&#x53C2;&#x6570;&#x51B3;&#x5B9A;(&#x6821;&#x9A8C;&#x6210;&#x529F;&#x7684;&#x65F6;&#x5019;&#x4E0D;&#x8981;&#x5FD8;&#x8BB0;&#x6267;&#x884C; <code>callback()</code>,&#x5426;&#x5219;&#x4F1A;&#x6821;&#x9A8C;&#x4E0D;&#x8FD4;&#x56DE;): <br> - callback() &#x65E0;&#x53C2;&#x6570;&#x8868;&#x793A;&#x6821;&#x9A8C;&#x6210;&#x529F; <br> - callback(&apos;this is a error msg&apos;) &#x6709;&#x53C2;&#x6570;&#x8868;&#x793A;&#x6821;&#x9A8C;&#x5931;&#x8D25;&#xFF0C;&#x5E76;&#x4E14;&#x53C2;&#x6570;&#x4E3A;&#x9519;&#x8BEF;&#x4FE1;&#x606F;</td>\n<td>Function(rule,value,callback)</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>trigger</td>\n<td>&#x89E6;&#x53D1;&#x6821;&#x9A8C;&#x7684;&#x4E8B;&#x4EF6;&#x540D;&#x79F0;</td>\n<td>String/Array</td>\n<td>onChange/onBlur/onFocus/...</td>\n<td>onChange</td>\n</tr>\n<tr>\n<td>message</td>\n<td>&#x51FA;&#x9519;&#x65F6;&#x5019;&#x4FE1;&#x606F;</td>\n<td>String</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Field Use Watch\">Field.useWatch <a class=\"header-anchor scroll-count-item\" href=\"#Field Use Watch\" data-scroll-id=\"Field Use Watch\">#</a></h3>\n<p><code>field.watch</code> &#x7684; react hook &#x5B9E;&#x73B0;</p>\n<pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">type</span> <span class=\"token class-name\">WatchTriggerType</span> <span class=\"token operator\">=</span> <span class=\"token string\">&apos;init&apos;</span> <span class=\"token operator\">|</span> <span class=\"token string\">&apos;change&apos;</span> <span class=\"token operator\">|</span> <span class=\"token string\">&apos;setValue&apos;</span> <span class=\"token operator\">|</span> <span class=\"token string\">&apos;unmount&apos;</span> <span class=\"token operator\">|</span> <span class=\"token string\">&apos;reset&apos;</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">interface</span> <span class=\"token class-name\">WatchCallback</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token punctuation\">(</span>name<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">,</span> value<span class=\"token operator\">:</span> <span class=\"token builtin\">unknown</span><span class=\"token punctuation\">,</span> oldValue<span class=\"token operator\">:</span> <span class=\"token builtin\">unknown</span><span class=\"token punctuation\">,</span> triggerType<span class=\"token operator\">:</span> WatchTriggerType<span class=\"token punctuation\">)</span><span class=\"token operator\">:</span> <span class=\"token keyword\">void</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">Field</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">static</span> <span class=\"token function-variable function\">useWatch</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span>field<span class=\"token operator\">:</span> Field<span class=\"token punctuation\">,</span> names<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> callback<span class=\"token operator\">:</span> WatchCallback<span class=\"token punctuation\">)</span> <span class=\"token operator\">=&gt;</span> <span class=\"token keyword\">void</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<!-- api-extra-end -->\n<h2 id=\"FAQ\">FAQ <a class=\"header-anchor scroll-count-item\" href=\"#FAQ\" data-scroll-id=\"FAQ\">#</a></h2>\n<h3 id=\"&#x81EA;&#x5B9A;&#x4E49;&#x7EC4;&#x4EF6;&#x63A5;&#x5165; Field&#x6807;&#x51C6;&#xFF1F;\">&#x81EA;&#x5B9A;&#x4E49;&#x7EC4;&#x4EF6;&#x63A5;&#x5165;Field&#x6807;&#x51C6;&#xFF1F; <a class=\"header-anchor scroll-count-item\" href=\"#&#x81EA;&#x5B9A;&#x4E49;&#x7EC4;&#x4EF6;&#x63A5;&#x5165; Field&#x6807;&#x51C6;&#xFF1F;\" data-scroll-id=\"&#x81EA;&#x5B9A;&#x4E49;&#x7EC4;&#x4EF6;&#x63A5;&#x5165; Field&#x6807;&#x51C6;&#xFF1F;\">#</a></h3>\n<ul>\n<li>&#x652F;&#x6301;&#x53D7;&#x63A7;&#x6A21;&#x5F0F;(value+onChange) <code>&#x5FC5;&#x987B;</code>\n<ul>\n<li>value &#x63A7;&#x5236;&#x7EC4;&#x4EF6;&#x6570;&#x636E;&#x5C55;&#x73B0;</li>\n<li>onChange &#x7EC4;&#x4EF6;&#x53D1;&#x751F;&#x53D8;&#x5316;&#x65F6;&#x5019;&#x7684;&#x56DE;&#x8C03;&#x51FD;&#x6570;&#xFF08;&#x7B2C;&#x4E00;&#x4E2A;&#x53C2;&#x6570;&#x53EF;&#x4EE5;&#x7ED9;&#x5230;value)</li>\n</ul>\n</li>\n<li>&#x4E00;&#x6B21;&#x5B8C;&#x6574;&#x64CD;&#x4F5C;&#x629B;&#x4E00;&#x6B21;onChange&#x4E8B;&#x4EF6; <code>&#x5EFA;&#x8BAE;</code>\n&#x6BD4;&#x5982;&#x6709;Process&#x8868;&#x793A;&#x8FDB;&#x5C55;&#x4E2D;&#x7684;&#x72B6;&#x6001;&#xFF0C;&#x5EFA;&#x8BAE;&#x589E;&#x52A0;API <code>onProcess</code>&#xFF1B;&#x5982;&#x679C;&#x6709;Start&#x8868;&#x793A;&#x542F;&#x52A8;&#x72B6;&#x6001;&#xFF0C;&#x5EFA;&#x8BAE;&#x589E;&#x52A0;API <code>onStart</code></li>\n<li><code>value={undefined}</code>&#x7684;&#x65F6;&#x5019;&#x6E05;&#x7A7A;&#x6570;&#x636E;, field &#x7684; reset &#x51FD;&#x6570;&#x4F1A;&#x7ED9;&#x6240;&#x6709;&#x7EC4;&#x4EF6;&#x4E0B;&#x53D1; undefined &#x6570;&#x636E; <code>&#x5EFA;&#x8BAE;</code></li>\n</ul>\n<pre class=\"language-jsx\"><code class=\"language-jsx\"><span class=\"token function\">componentWillReceiveProps</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">nextProps</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token string\">&apos;value&apos;</span> <span class=\"token keyword\">in</span> nextProps <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">setState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n           <span class=\"token literal-property property\">value</span><span class=\"token operator\">:</span> nextProps<span class=\"token punctuation\">.</span>value <span class=\"token operator\">===</span> <span class=\"token keyword\">undefined</span><span class=\"token operator\">?</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token operator\">:</span> nextProps<span class=\"token punctuation\">.</span>value   <span class=\"token comment\">//  &#x8BBE;&#x7F6E;&#x7EC4;&#x4EF6;&#x7684;&#x88AB;&#x6E05;&#x7A7A;&#x540E;&#x7684;&#x6570;&#x503C;</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<h3 id=\"&#x4E3A;&#x4F55;&#x624B;&#x52A8;&#x8C03;&#x7528;this Field Validate&#x7684;&#x65F6;&#x5019;&#x8FDB;&#x4E0D;&#x4E86;&#x56DE;&#x8C03;&#x51FD;&#x6570;&#xFF1F;\">&#x4E3A;&#x4F55;&#x624B;&#x52A8;&#x8C03;&#x7528;<code>this.field.validate</code>&#x7684;&#x65F6;&#x5019;&#x8FDB;&#x4E0D;&#x4E86;&#x56DE;&#x8C03;&#x51FD;&#x6570;&#xFF1F; <a class=\"header-anchor scroll-count-item\" href=\"#&#x4E3A;&#x4F55;&#x624B;&#x52A8;&#x8C03;&#x7528;this Field Validate&#x7684;&#x65F6;&#x5019;&#x8FDB;&#x4E0D;&#x4E86;&#x56DE;&#x8C03;&#x51FD;&#x6570;&#xFF1F;\" data-scroll-id=\"&#x4E3A;&#x4F55;&#x624B;&#x52A8;&#x8C03;&#x7528;this Field Validate&#x7684;&#x65F6;&#x5019;&#x8FDB;&#x4E0D;&#x4E86;&#x56DE;&#x8C03;&#x51FD;&#x6570;&#xFF1F;\">#</a></h3>\n<p>&#x53EF;&#x80FD;&#x662F;&#x81EA;&#x5B9A;&#x4E49;&#x4E86;validator&#x65B9;&#x6CD5;&#xFF0C;&#x786E;&#x4FDD;<code>callback</code>&#x5728;&#x4EFB;&#x4F55;&#x5206;&#x652F;&#x4E0B;&#x90FD;&#x80FD;&#x88AB;&#x6267;&#x884C;&#x5230;&#x3002;</p>\n","renderHtml":"<script>(function(){var import_next = require(\"@alifd/next\");\nvar import_next2 = require(\"@alifd/next\");\nvar import_next3 = require(\"@alifd/next\");\nwindow.loadingRenderScript = function(loading, showMessage = true) {\n  try {\n    if (loading) {\n      ReactDOM.render(/* @__PURE__ */ React.createElement(import_next2.Loading, { visible: true, fullScreen: true }), document.getElementById(\"demo-loading-state\"));\n      return;\n    }\n    ReactDOM.unmountComponentAtNode(document.getElementById(\"demo-loading-state\"));\n    showMessage && import_next3.Message.success(window.localStorage.liveDemo === \"true\" ? \"\\u5207\\u6362\\u5230\\u5728\\u7EBF\\u7F16\\u8F91\\u6A21\\u5F0F\\u6210\\u529F\\uFF0C\\u70B9\\u51FB\\u4EE3\\u7801\\u533A\\u57DF\\u5373\\u53EF\\u7F16\\u8F91\\u9884\\u89C8\\u3002\" : \"\\u5207\\u6362\\u5230\\u9884\\u89C8\\u6A21\\u5F0F\\u6210\\u529F\\uFF0C\\u4EE3\\u7801\\u5C55\\u793A\\u4E3A\\u53EA\\u8BFB\\u6A21\\u5F0F\\u3002\");\n  } catch (e) {\n    import_next3.Message.error(window.localStorage.liveDemo === \"true\" ? \"\\u5207\\u6362\\u5230\\u5728\\u7EBF\\u7F16\\u8F91\\u6A21\\u5F0F\\u5931\\u8D25\\uFF0C\\u8BF7\\u8054\\u7CFB\\u7BA1\\u7406\\u5458\\u3002\" : \"\\u5207\\u6362\\u5230\\u9884\\u89C8\\u6A21\\u5F0F\\u5931\\u8D25\\uFF0C\\u8BF7\\u8054\\u7CFB\\u7BA1\\u7406\\u5458\\u3002\");\n  }\n};\nwindow.demoNames = [];\nwindow.renderFuncs = [];\nReactDOM.render(/* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"span\", { id: \"live-demo\", role: \"img\", \"aria-label\": \"edit\", className: \"code-box-expand-trigger\" }, /* @__PURE__ */ React.createElement(\n  import_next.Balloon.Tooltip,\n  {\n    align: \"b\",\n    style: { maxWidth: 320, marginTop: 24 },\n    trigger: /* @__PURE__ */ React.createElement(\n      \"svg\",\n      {\n        id: \"live-on\",\n        viewBox: \"0 0 16 16\",\n        focusable: \"false\",\n        className: \"\",\n        \"data-icon\": \"edit\",\n        width: \"1em\",\n        height: \"1em\",\n        fill: \"currentColor\",\n        \"aria-hidden\": \"true\",\n        style: { boxSizing: \"border-box\", border: \"1.8 solid rgba(0, 0, 0, .45)\", width: 20, height: 20, padding: 2 }\n      },\n      /* @__PURE__ */ React.createElement(\"path\", { d: \"M9.69559557,3.62666667 L2.20866223,11.1146667 L1.8673289,12.3562667 L3.1153289,12.0181333 L10.6011956,4.53226667 L9.69559557,3.62666667 Z M10.4497289,2.87253333 L11.3553289,3.77813333 L12.2673289,2.86613333 C12.4290988,2.70436348 12.4922771,2.46857876 12.4330652,2.24759702 C12.3738533,2.02661528 12.201247,1.85400889 11.9802652,1.79479701 C11.7592835,1.73558513 11.5234988,1.79876346 11.3617289,1.96053333 L10.4497289,2.87253333 L10.4497289,2.87253333 Z M13.0203956,1.20639113 C13.3405419,1.52647328 13.5204044,1.96062968 13.5204044,2.41333333 C13.5204044,2.86603699 13.3405419,3.30019339 13.0203956,3.62026667 L3.6689289,12.9728 L0.346262232,13.8741333 L1.25506223,10.5589333 L10.6075956,1.20639113 C10.9276688,0.886253633 11.3618252,0.706391131 11.8145289,0.706391131 C12.2672326,0.706391131 12.701389,0.886253633 13.0214622,1.20639113 L13.0203956,1.20639113 Z M1,15 L11,15 L11,16 L1,16 L1,15 Z\" })\n    )\n  },\n  /* @__PURE__ */ React.createElement(\"span\", null, \"\\u4F7F\\u7528\\u5728\\u7EBF\\u7F16\\u8F91\\u6A21\\u5F0F\")\n), /* @__PURE__ */ React.createElement(\n  import_next.Balloon.Tooltip,\n  {\n    align: \"b\",\n    style: { maxWidth: 320, marginTop: 24 },\n    trigger: /* @__PURE__ */ React.createElement(\n      \"svg\",\n      {\n        id: \"live-off\",\n        viewBox: \"0 0 16 16\",\n        focusable: \"false\",\n        className: \"\",\n        \"data-icon\": \"edit\",\n        width: \"1em\",\n        height: \"1em\",\n        \"aria-hidden\": \"true\",\n        style: { boxSizing: \"border-box\", border: \"1.8 solid rgba(0, 0, 0, .45)\", width: 20, height: 20, padding: 2, display: \"none\" }\n      },\n      /* @__PURE__ */ React.createElement(\"path\", { d: \"M9.69559557,3.62666667 L2.20866223,11.1146667 L1.8673289,12.3562667 L3.1153289,12.0181333 L10.6011956,4.53226667 L9.69559557,3.62666667 Z M10.4497289,2.87253333 L11.3553289,3.77813333 L12.2673289,2.86613333 C12.4290988,2.70436348 12.4922771,2.46857876 12.4330652,2.24759702 C12.3738533,2.02661528 12.201247,1.85400889 11.9802652,1.79479701 C11.7592835,1.73558513 11.5234988,1.79876346 11.3617289,1.96053333 L10.4497289,2.87253333 L10.4497289,2.87253333 Z M13.0203956,1.20639113 C13.3405419,1.52647328 13.5204044,1.96062968 13.5204044,2.41333333 C13.5204044,2.86603699 13.3405419,3.30019339 13.0203956,3.62026667 L3.6689289,12.9728 L0.346262232,13.8741333 L1.25506223,10.5589333 L10.6075956,1.20639113 C10.9276688,0.886253633 11.3618252,0.706391131 11.8145289,0.706391131 C12.2672326,0.706391131 12.701389,0.886253633 13.0214622,1.20639113 L13.0203956,1.20639113 Z M1,15 L11,15 L11,16 L1,16 L1,15 Z\" })\n    )\n  },\n  /* @__PURE__ */ React.createElement(\"span\", null, \"\\u4F7F\\u7528\\u9884\\u89C8\\u6A21\\u5F0F\")\n)), /* @__PURE__ */ React.createElement(\n  import_next.Balloon.Tooltip,\n  {\n    align: \"b\",\n    style: { maxWidth: 320 },\n    trigger: /* @__PURE__ */ React.createElement(\"span\", { id: \"expand-all\", role: \"img\", \"aria-label\": \"code\", className: \"code-box-expand-trigger\" }, /* @__PURE__ */ React.createElement(\n      \"svg\",\n      {\n        id: \"all-not-expand\",\n        viewBox: \"0 0 16 16\",\n        focusable: \"false\",\n        className: \"\",\n        \"data-icon\": \"code\",\n        fill: \"currentColor\",\n        \"aria-hidden\": \"true\",\n        style: { padding: \"2px 0\" }\n      },\n      /* @__PURE__ */ React.createElement(\"path\", { d: \"M16,0 L16,16 L0,16 L0,0 L16,0 Z M15,1 L1,1 L1,15 L15,15 L15,1 Z M13,11 L13,12 L8,12 L8,11 L13,11 Z M3.33419059,3.86073652 L7.22040532,7.74695124 L3.33419127,11.6331801 L2.62708313,10.9260747 L5.806,7.747 L2.62708313,4.5678433 L3.33419059,3.86073652 Z\" })\n    ), /* @__PURE__ */ React.createElement(\n      \"svg\",\n      {\n        id: \"all-expanded\",\n        viewBox: \"0 0 16 16\",\n        focusable: \"false\",\n        className: \"\",\n        \"data-icon\": \"code\",\n        width: \"1em\",\n        height: \"1em\",\n        \"aria-hidden\": \"true\",\n        style: { display: \"none\", padding: \"2px 0\" }\n      },\n      /* @__PURE__ */ React.createElement(\"path\", { d: \"M16,0 L16,16 L0,16 L0,0 L16,0 Z M15,1 L1,1 L1,15 L15,15 L15,1 Z M13,11 L13,12 L8,12 L8,11 L13,11 Z M3.33419059,3.86073652 L7.22040532,7.74695124 L3.33419127,11.6331801 L2.62708313,10.9260747 L5.806,7.747 L2.62708313,4.5678433 L3.33419059,3.86073652 Z\" })\n    ))\n  },\n  /* @__PURE__ */ React.createElement(\"span\", null, \"\\u5C55\\u5F00\\u6240\\u6709\\u4EE3\\u7801\")\n), /* @__PURE__ */ React.createElement(\n  import_next.Balloon.Tooltip,\n  {\n    align: \"b\",\n    style: { maxWidth: 320 },\n    trigger: /* @__PURE__ */ React.createElement(\"span\", { id: \"debug-demo\", role: \"img\", \"aria-label\": \"debug\", className: \"code-box-expand-trigger\" }, /* @__PURE__ */ React.createElement(\"svg\", { id: \"debug-hide\", width: \"20px\", height: \"20px\", viewBox: \"0 0 20 20\", fill: \"currentColor\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.413,5.123 L17.497,5.125 L17.4938579,5.24712566 C17.4124011,6.50550853 16.4031377,7.52061238 15.1270346,7.59281941 L15.1270346,7.59281941 L14.7841667,7.60199902 L14.7841667,9.95 L17.834,9.95 L17.831,10.959 L14.7841667,10.9566667 L14.7841667,13.0316667 L14.7801982,13.2199617 L14.7627557,13.5369659 L14.8923079,13.5922729 L15.0760387,13.6769401 C16.2193459,14.2436639 16.9714896,15.3821922 17.0442066,16.6561778 L17.0442066,16.6561778 L17.049,16.817 L16.041,16.815 L16.0369034,16.6766262 C15.977166,15.8346669 15.5050511,15.0825334 14.7825181,14.6606226 L14.7825181,14.6606226 L14.5732891,14.538447 L14.4929745,14.7670366 L14.3977548,15.0175969 C13.9586581,16.0904742 13.1783448,16.9922153 12.1738893,17.5807743 C11.3678119,18.0526063 10.4502591,18.3006331 9.5161454,18.2991922 C8.58163819,18.3008405 7.66433888,18.0528072 6.8585976,17.5807666 C5.77722924,16.9468191 4.95575892,15.9497869 4.54036671,14.767059 L4.54036671,14.767059 L4.46020284,14.5388119 L4.25109728,14.6604582 L4.09864344,14.7565156 C3.45588133,15.1940269 3.04845604,15.9027194 2.99379785,16.67833 L2.99379785,16.67833 L2.988,16.817 L1.981,16.815 L1.98660477,16.6560529 C2.06302813,15.314598 2.89278604,14.1232567 4.13931435,13.5914585 L4.13931435,13.5914585 L4.26860859,13.5362986 L4.24966701,13.2084637 L4.24663589,13.0264918 L4.24666666,10.955 L1.197,10.955 L1.2,9.946 L4.24666666,9.94916666 L4.24666666,7.59660523 L4.04660524,7.59666667 L3.84744418,7.58883329 C3.25325975,7.54182361 2.6925671,7.28480262 2.2680489,6.86028442 L2.2680489,6.86028442 L2.13280475,6.71387571 C1.78900766,6.31075438 1.58128642,5.80905308 1.53950003,5.28088914 L1.53950003,5.28088914 L1.533,5.123 L2.618,5.125 L2.62315839,5.21874346 C2.68759515,5.89583723 3.22449438,6.44084418 3.90945934,6.5057741 L3.90945934,6.5057741 L4.03681945,6.51225743 L14.9841667,6.5125 L15.1220431,6.50595782 C15.8026115,6.44103331 16.3435021,5.90036306 16.4084549,5.21958988 L16.4084549,5.21958988 L16.413,5.123 Z M13.7,7.59664574 L5.33083334,7.59752091 L5.33083334,13.0325 L5.33809023,13.2809236 C5.37672347,13.9404662 5.56904731,14.574915 5.90158405,15.1427371 C6.4707333,16.1166781 7.40862559,16.8201762 8.50312303,17.0940194 L8.50312303,17.0940194 L8.97333334,17.1966415 L8.973,9.244 L10.061,9.247 L10.0583333,17.1899644 L10.2957078,17.1448102 L10.5315479,17.0928761 C11.6216842,16.8196938 12.5603581,16.1186245 13.1309897,15.1426111 C13.4628207,14.5757511 13.6554534,13.9381428 13.6930063,13.2822658 L13.6930063,13.2822658 L13.7,13.0380922 L13.7,7.59664574 Z M9.67166666,1.2 L9.94946991,1.20765814 C10.5902009,1.24335099 11.1774701,1.40349507 11.6876465,1.68145803 C12.2650485,1.99511049 12.7390562,2.46911818 13.0525889,3.04630002 L13.0525889,3.04630002 L13.1645227,3.26967079 C13.3738758,3.72555777 13.495913,4.2354958 13.5265083,4.78469633 L13.5265083,4.78469633 L13.533,5.021 L12.527,5.019 L12.5208902,4.8181819 C12.4911588,4.33711391 12.3726061,3.90241819 12.1697037,3.53081905 C11.9481223,3.12205789 11.6121088,2.78604432 11.2028132,2.56417225 C10.828898,2.35743243 10.3832897,2.23842323 9.88647544,2.21195 L9.88647544,2.21195 L9.67656315,2.20672661 L9.35916666,2.20666666 L9.11516207,2.2140909 C8.63471889,2.24374606 8.20055659,2.3619904 7.82860231,2.56430863 C7.41544155,2.79041125 7.08700404,3.11884877 6.86198002,3.5307879 L6.86198002,3.5307879 L6.76748586,3.72015117 C6.62182946,4.04481669 6.53549448,4.41405034 6.51076216,4.81686753 L6.51076216,4.81686753 L6.504,5.021 L5.497,5.019 L5.5043248,4.78469675 C5.54001765,4.1439658 5.70016173,3.55669654 5.97812469,3.04652017 C6.29196922,2.46904388 6.76626177,1.99502471 7.34373435,1.68161345 C7.86205179,1.39947142 8.45947065,1.23827271 9.11167854,1.20558259 L9.11167854,1.20558259 L9.36451498,1.19994903 L9.67166666,1.2 Z\" })), /* @__PURE__ */ React.createElement(\"svg\", { id: \"debug-show\", width: \"20px\", height: \"20px\", viewBox: \"0 0 20 20\", style: { display: \"none\" } }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.413,5.123 L17.497,5.125 L17.4938579,5.24712566 C17.4124011,6.50550853 16.4031377,7.52061238 15.1270346,7.59281941 L15.1270346,7.59281941 L14.7841667,7.60199902 L14.7841667,9.95 L17.834,9.95 L17.831,10.959 L14.7841667,10.9566667 L14.7841667,13.0316667 L14.7801982,13.2199617 L14.7627557,13.5369659 L14.8923079,13.5922729 L15.0760387,13.6769401 C16.2193459,14.2436639 16.9714896,15.3821922 17.0442066,16.6561778 L17.0442066,16.6561778 L17.049,16.817 L16.041,16.815 L16.0369034,16.6766262 C15.977166,15.8346669 15.5050511,15.0825334 14.7825181,14.6606226 L14.7825181,14.6606226 L14.5732891,14.538447 L14.4929745,14.7670366 L14.3977548,15.0175969 C13.9586581,16.0904742 13.1783448,16.9922153 12.1738893,17.5807743 C11.3678119,18.0526063 10.4502591,18.3006331 9.5161454,18.2991922 C8.58163819,18.3008405 7.66433888,18.0528072 6.8585976,17.5807666 C5.77722924,16.9468191 4.95575892,15.9497869 4.54036671,14.767059 L4.54036671,14.767059 L4.46020284,14.5388119 L4.25109728,14.6604582 L4.09864344,14.7565156 C3.45588133,15.1940269 3.04845604,15.9027194 2.99379785,16.67833 L2.99379785,16.67833 L2.988,16.817 L1.981,16.815 L1.98660477,16.6560529 C2.06302813,15.314598 2.89278604,14.1232567 4.13931435,13.5914585 L4.13931435,13.5914585 L4.26860859,13.5362986 L4.24966701,13.2084637 L4.24663589,13.0264918 L4.24666666,10.955 L1.197,10.955 L1.2,9.946 L4.24666666,9.94916666 L4.24666666,7.59660523 L4.04660524,7.59666667 L3.84744418,7.58883329 C3.25325975,7.54182361 2.6925671,7.28480262 2.2680489,6.86028442 L2.2680489,6.86028442 L2.13280475,6.71387571 C1.78900766,6.31075438 1.58128642,5.80905308 1.53950003,5.28088914 L1.53950003,5.28088914 L1.533,5.123 L2.618,5.125 L2.62315839,5.21874346 C2.68759515,5.89583723 3.22449438,6.44084418 3.90945934,6.5057741 L3.90945934,6.5057741 L4.03681945,6.51225743 L14.9841667,6.5125 L15.1220431,6.50595782 C15.8026115,6.44103331 16.3435021,5.90036306 16.4084549,5.21958988 L16.4084549,5.21958988 L16.413,5.123 Z M13.7,7.59664574 L5.33083334,7.59752091 L5.33083334,13.0325 L5.33809023,13.2809236 C5.37672347,13.9404662 5.56904731,14.574915 5.90158405,15.1427371 C6.4707333,16.1166781 7.40862559,16.8201762 8.50312303,17.0940194 L8.50312303,17.0940194 L8.97333334,17.1966415 L8.973,9.244 L10.061,9.247 L10.0583333,17.1899644 L10.2957078,17.1448102 L10.5315479,17.0928761 C11.6216842,16.8196938 12.5603581,16.1186245 13.1309897,15.1426111 C13.4628207,14.5757511 13.6554534,13.9381428 13.6930063,13.2822658 L13.6930063,13.2822658 L13.7,13.0380922 L13.7,7.59664574 Z M9.67166666,1.2 L9.94946991,1.20765814 C10.5902009,1.24335099 11.1774701,1.40349507 11.6876465,1.68145803 C12.2650485,1.99511049 12.7390562,2.46911818 13.0525889,3.04630002 L13.0525889,3.04630002 L13.1645227,3.26967079 C13.3738758,3.72555777 13.495913,4.2354958 13.5265083,4.78469633 L13.5265083,4.78469633 L13.533,5.021 L12.527,5.019 L12.5208902,4.8181819 C12.4911588,4.33711391 12.3726061,3.90241819 12.1697037,3.53081905 C11.9481223,3.12205789 11.6121088,2.78604432 11.2028132,2.56417225 C10.828898,2.35743243 10.3832897,2.23842323 9.88647544,2.21195 L9.88647544,2.21195 L9.67656315,2.20672661 L9.35916666,2.20666666 L9.11516207,2.2140909 C8.63471889,2.24374606 8.20055659,2.3619904 7.82860231,2.56430863 C7.41544155,2.79041125 7.08700404,3.11884877 6.86198002,3.5307879 L6.86198002,3.5307879 L6.76748586,3.72015117 C6.62182946,4.04481669 6.53549448,4.41405034 6.51076216,4.81686753 L6.51076216,4.81686753 L6.504,5.021 L5.497,5.019 L5.5043248,4.78469675 C5.54001765,4.1439658 5.70016173,3.55669654 5.97812469,3.04652017 C6.29196922,2.46904388 6.76626177,1.99502471 7.34373435,1.68161345 C7.86205179,1.39947142 8.45947065,1.23827271 9.11167854,1.20558259 L9.11167854,1.20558259 L9.36451498,1.19994903 L9.67166666,1.2 Z\" })))\n  },\n  /* @__PURE__ */ React.createElement(\"span\", null, \"\\u663E\\u793A\\u8C03\\u8BD5demo\")\n)), document.getElementById(\"global-control\"));\n})()</script>"}