首页 > web前端 > js教程 > 正文

如何通过 React Hooks 对元素数组使用多个引用?

DDD
发布: 2024-11-03 10:23:02
原创
372 人浏览过

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

如何通过 Hooks 对元素数组使用多个引用?

简介

引用提供了一种方法访问 React 组件中的 HTML 元素。虽然您可以使用 refs 来管理单个元素,但在某些情况下您可能需要将 refs 应用到元素数组。本文探讨了如何在 React 中使用钩子实现元素数组的多个引用。

单个元素引用

对单个元素使用引用非常简单:

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

useEffect(() => {
  setElWidth(elRef.current.offsetWidth);
}, []);</code>
登录后复制

元素引用数组

将上述方法应用于元素数组将不起作用,因为它将相同的引用分配给所有元素。相反,我们需要创建一个引用数组并将它们单独分配给每个元素:

<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 Hooks 对元素数组使用多个引用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板