回答:
これはステートフルDOMコンポーネント(フォーム要素)に関連し、Reactドキュメントは違いを説明します:
propsようにコールバックして変更と通知onChange。親コンポーネントは、コールバックを処理して自身の状態を管理し、新しい値をプロップとして制御されたコンポーネントに渡すことによって、それを「制御」します。これを「ダムコンポーネント」と呼ぶこともできます。refあなたがそれを必要とするとき、現在の値を見つけること。これは、従来のHTMLに少し似ています。ほとんどのネイティブReactフォームコンポーネントは、制御された使用と制御されていない使用の両方をサポートします。
// Controlled:
<input type="text" value={value} onChange={handleChange} />
// Uncontrolled:
<input type="text" defaultValue="foo" ref={inputRef} />
// Use `inputRef.current.value` to read the current value of <input>
ほとんど(またはすべて)の場合、制御されたコンポーネントを使用する必要があります。
stateいうよりも値をとっていませんpropsか?
props。制御されていないコンポーネントはstate、値自体を内部的に制御するために使用します。これが大きな違いです。
controlled components(<input type="text" value="value" onChange={handleChangeCallbackFn} />入力要素は、独自の値を処理し、経由して読み取ることができ、従来のHTML対)refsと呼ばれますuncontrolled components(<value type="text" />)。制御されたコンポーネントはsetState、親コンポーネントからプロップとして、または親コンポーネントから取得して、独自の状態を管理しています。
defaultValueプロップを介してそれを取得するコンポーネントをどのように呼び出しますが、コントローラーに通知しますonBlurか?