Reactの制御されていないコンポーネントは、コンポーネントの状態によって管理される代わりに、フォームデータがDOM自体によって処理されるものです。制御されていないコンポーネントを作成するには、次の手順に従います。
defaultValue
Prop :form form elementの初期value
(制御する)を設定する代わりに、 defaultValue
使用します。たとえば、入力フィールドの場合、次のことを行います。
<code class="jsx"><input type="text" defaultvalue="Initial Value"></code>
REFを介してデータへのアクセス:データはReactの状態によって管理されていないため、必要に応じて現在の値にアクセスする方法が必要です。 Reactのref
システムを使用して、DOMノードへの参照を作成します。これがあなたのやり方です:
<code class="jsx">class UncontrolledForm extends React.Component { constructor(props) { super(props); this.inputRef = React.createRef(); } handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', this.inputRef.current.value); } render() { return ( <form onsubmit="{this.handleSubmit}"> <input type="text" defaultvalue="Initial Value" ref="{this.inputRef}"> <button type="submit">Submit</button> </form> ); } }</code>
これらの手順に従うことにより、フォームデータがDOMによって直接処理されるReactで制御されていないコンポーネントを作成できます。
Reactアプリケーションで制御されていないコンポーネントを使用するには、いくつかの利点があります。
Reactの制御されていないコンポーネントの値にアクセスするには、通常、 ref
システムを使用します。これがあなたがそれを行う方法です:
REF:CREATE :コンポーネントで、 React.createRef()
または機能コンポーネントのuseRef
フックを使用してrefを作成します。
<code class="jsx">// In a class component constructor(props) { super(props); this.inputRef = React.createRef(); } // In a functional component const inputRef = useRef(null);</code>
REFをDOM要素に添付します。フォーム要素をレンダリングするときは、 ref
を渡します。
<code class="jsx">// Class component <input type="text" defaultvalue="Initial Value" ref="{this.inputRef}"> // Functional component <input type="text" defaultvalue="Initial Value" ref="{inputRef}"></code>
値へのアクセス:フォームの提出やその他のイベントなど、必要に応じて、制御されないコンポーネントの値にアクセスできます。 ref.current.value
を使用して、現在の値を取得します。
<code class="jsx">// In a class component handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', this.inputRef.current.value); } // In a functional component const handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', inputRef.current.value); }</code>
これらの手順に従うことにより、Reactの制御されていないコンポーネントの値に効果的にアクセスできます。
制御されたコンポーネントと制御されていないコンポーネントを選択することは、プロジェクトの特定のニーズと複雑さによって異なります。制御されていないコンポーネントを好むかもしれないシナリオを次に示します。
一般に、フォームデータとその検証をより多くの制御が必要な場合、制御されたコンポーネントがより良い選択です。ただし、よりシンプルまたはパフォーマンスクリティカルなシナリオの場合、制御されていないコンポーネントが適している場合があります。
以上がReactで制御されていないコンポーネントをどのように作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。