【发布时间】:2019-12-20 22:03:52
【问题描述】:
我已经在这里阅读了很多答案,但它们都是潮类组件。
如果我有使用 useRef 或 createRef 的简单功能组件,则 ref.current 未定义 我将它分配在 div 或 input 之上,但我无法获得它们的任何属性
Console.log() 仅在我使用独立的 console.log(ref) 时给我数据 其他所有属性都是未定义的,例如console.log(ref.current)
import React, { useRef } from "react";
import ReactDOM from "react-dom";
function App() {
const ref = useRef()
console.log(ref.current) // undefined
console.log(ref) // { current }
return (
<div className="App">
<h1 ref={ref}>Hello CodeSandbox</h1>
{/* <input ref={ref} name="test" value="bla" /> */}
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
看看这个演示,看看控制台: https://codesandbox.io/s/fervent-kirch-soe8n
但即使在类组件中我也无法访问例如 ref.current.innerHTML: https://codesandbox.io/s/relaxed-beaver-ic1em
【问题讨论】:
-
因为
const ref = useRef()ref 没有定义...const ref = useRef('something..')然后你会在控制台上看到'something..'。添加这个:useEffect(() => { console.log(ref.current) }); -
是的,我刚刚弄明白了。谢谢
标签: reactjs