gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 21:16:10 24 4
gpt4 key购买 nike

我正在试验 React Hooks,我想知道如何使用 useRef 定位元素 child 。实际上,我知道如何使用 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和subtitle变量来创建一个函数 在 useEffect 之外 .我知道我对标题和副标题的第一个声明是错误的。但实际上我不知道如何解决这个问题。我尝试使用 useState ,但我未能解决我的问题。

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

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

最佳答案

您需要定位您的 current HTML 元素,然后让 child 像:

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>
);
}

这会将子进程记录到控制台。希望这会帮助你。

关于reactjs - React Hooks - 如何使用 useEffect 之外的变量声明来定位元素子元素(使用 useRef)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60503263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com