ホームページ  >  記事  >  ウェブフロントエンド  >  レンダリング後に React で入力フィールドにフォーカスを当てるにはどうすればよいですか?

レンダリング後に React で入力フィールドにフォーカスを当てるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 15:20:02956ブラウズ

How to Focus Input Fields in React After Rendering?

React でのレンダリング後の入力フィールドのフォーカス

最初のレンダリング後に要素を操作することは、フロントエンド開発では一般的なニーズです。 React では、入力フィールドでこれを実現するには、シームレスなユーザー インタラクションを確保するためにフォーカスを設定する必要があります。

ドキュメントで言及されているアプローチの 1 つは、refs を使用することです。これには、ref="nameInput" などの、render 関数内の入力フィールドに ref 属性を割り当てることが含まれます。入力に焦点を当てるには、this.refs.nameInput.getInputDOMNode().focus(); を呼び出します。ただし、常に期待どおりに動作するとは限りません。

たとえば、 this.refs.nameInput.getInputDOMNode().focus(); を呼び出してみたかもしれません。 ComponentDidMount() ライフサイクル メソッド内。ただし、この段階では DOM ノードがまだ利用できないため、これは機能しません。

代わりに、DOM がレンダリングされた後にフォーカスを設定する必要があります。これを行う 1 つの方法は、フォーカス操作用の関数を作成し、それをcomponentDidUpdate() ライフサイクル メソッドから呼び出すことです。以下に例を示します。

<code class="javascript">class MyComponent extends React.Component {
  focusInput() {
    this.inputElement.focus();
  }

  componentDidUpdate() {
    this.focusInput();
  }

  render() {
    return <input ref={el => this.inputElement = el} />;
  }
}</code>

または、autoFocus プロパティを活用することもできます。

<code class="javascript"><input autoFocus name="..." /></code>

これにより、マウント時に入力が自動的にフォーカスを受け取ることが保証されます。 JSX の autoFocus プロパティの大文字化に注意してください。

以上がレンダリング後に React で入力フィールドにフォーカスを当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。