React Hooks - 如何使用 useEffect 之外的变量声明来定位元素子元素(使用 useRef)?

2024-04-12

我正在尝试 React Hooks,我想知道如何使用 useRef 来定位子元素。实际上,我知道如何使用 useRef 来定位元素。但是当我尝试将子项分配给变量时遇到一些问题。

这是一个例子:

import React, { useState, useEffect, useRef } from "react";
import "./styles.css";

export default function App() {
  let containerRef = useRef(null);

  let title, subtitle;

  const myEvent = () => {
    console.log(title);
  };

  useEffect(() => {
    title = containerRef.children[0];
    subtitle = containerRef.children[1];
  }, []);

  return (
    <div className="App" ref={el => (containerRef = el)}>
      <h1 onClick={myEvent}>Hello World!</h1>
      <h2>What's going on ?</h2>
    </div>
  );
}

我想访问标题和副标题变量来创建一个函数使用之外的效果。我知道我的第一个声明是错误的title and subtitle。但实际上我不知道如何解决这个问题。我尝试使用useState,但我未能解决我的问题。

(精度:当然,在我的实际项目中,我只是不想在控制台中显示变量)。

有人可以帮我解决这个问题吗?


你需要瞄准你的目标currentHTML 元素,然后获取子元素,例如:

import React, { useState, useEffect, useRef } from "react";
import "./styles.css";

export default function App() {
  let containerRef = useRef(null);
  const [title, setTitle] = useState("");

  const myEvent = () => {
    console.log(title);
  };

  useEffect(() => {
    setTitle(containerRef.current.children[0]);
  }, []);

  return (
    <div className="App" ref={containerRef}>
      <h1 onClick={myEvent}>Hello World!</h1>
      <h2>What's going on ?</h2>
    </div>
  );
}

这会将孩子记录到控制台。希望对你有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Hooks - 如何使用 useEffect 之外的变量声明来定位元素子元素(使用 useRef)? 的相关文章

随机推荐