ホームページ  >  記事  >  ウェブフロントエンド  >  React フックで要素の配列に複数の Ref を使用するにはどうすればよいですか?

React フックで要素の配列に複数の Ref を使用するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-03 10:23:02373ブラウズ

How Can I Use Multiple Refs for an Array of Elements with React Hooks?

フックを持つ要素の配列に複数の Ref を使用するにはどうすればよいですか?

はじめに

Ref は、次の方法を提供します。 React コンポーネントの HTML 要素にアクセスします。 ref を使用して単一の要素を管理できますが、要素の配列に ref を適用する必要がある場合もあります。この記事では、React でフックを使用して要素の配列に複数の ref を実装する方法について説明します。

単一要素の Ref

単一要素の ref の使用は簡単です。

<code class="javascript">const elRef = useRef();
const [elWidth, setElWidth] = useState();

useEffect(() => {
  setElWidth(elRef.current.offsetWidth);
}, []);</code>

要素の配列 Ref

要素の配列に上記のアプローチを適用しても、すべての要素に同じ ref が割り当てられるため、機能しません。代わりに、ref の配列を作成し、それらを各要素に個別に割り当てる必要があります。

<code class="javascript">const itemsRef = useRef([]);

// Initialize the array of refs
useEffect(() => {
  itemsRef.current = itemsRef.current.slice(0, props.items.length);
}, [props.items]);

// Use the array of refs in JSX
return props.items.map((item, i) => (
  <div
    key={i}
    ref={(el) => (itemsRef.current[i] = el)}
    style={{ width: `${(i + 1) * 100}px` }}
  >
    ...
  </div>
));</code>

このソリューションでは、itemsRef.current は HTML 要素への参照の配列です。配列にインデックスを付けることで個々の要素にアクセスできます (例: itemsRef.current[0].

)

以上がReact フックで要素の配列に複数の Ref を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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