useRefによる非制御入力
シンプルなフォームではstateの代わりにrefを使ってDOM入力値にアクセスします
「useRefによる非制御入力」はCoddyKit上の無料React Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはReact Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 React Academyコースには全4レッスンが含まれています。
ようこそ
制御された入力と非制御入力
// Controlled
<input value={name} onChange={e => setName(e.target.value)} />
// Uncontrolled
const nameRef = useRef();
<input ref={nameRef} defaultValue="" />送信時に値を読み取る
function Form() {
const nameRef = useRef();
const handleSubmit = (e) => {
e.preventDefault();
console.log(nameRef.current.value);
};
return (
<form onSubmit={handleSubmit}>
<input ref={nameRef} />
<button type="submit">Submit</button>
</form>
);
}defaultValueとvalue
<input ref={nameRef} defaultValue="Initial text" />非制御入力を使う場合
非制御入力をリセットする
// Reset imperatively
nameRef.current.value = '';
// Or remount
setFormKey(k => k + 1);
<input key={formKey} ref={nameRef} />複数の入力に複数のrefを使う
const emailRef = useRef();
const passwordRef = useRef();
<input ref={emailRef} type="email" />
<input ref={passwordRef} type="password" />マウント時にフォーカスする
const inputRef = useRef();
useEffect(() => {
inputRef.current?.focus();
}, []);
<input ref={inputRef} />非制御入力とバリデーション
useRefのトレードオフ
確認問題
まとめ
次へ
よくある質問
「useRefによる非制御入力」レッスンは無料ですか?
はい。「useRefによる非制御入力」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、React Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 React Academyコースには全4レッスンが含まれています。
「useRefによる非制御入力」で何を学びますか?
シンプルなフォームではstateの代わりにrefを使ってDOM入力値にアクセスします ブラウザで直接実行するハンズオンコードでReact Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
React Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのReact Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「useRefによる非制御入力」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このReact Academyレッスンでコードを書いて実行できますか?
はい。すべてのReact Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。