我正在使用React钩子,我有下面的代码:
const [_va, _setva] = useState(0);
const va = useRef({current: _va});
console.log(va);
因此according to the documentation,va
的期望值是一个对象,它具有一个current
属性,该属性包含最初为0的期望值。
但是当我运行脚本时,我得到了以下结果:
换句话说,不是va.current
包含期望值,va.current
包含另一个current
属性,该属性包含期望值。这意味着我必须访问va.current.current
才能访问所需的值。
有人知道为什么会这样吗?
答案 0 :(得分:3)
您误解了文档;您将设置ref的值,并在返回对象的current
属性中返回它:
const ref = useRef("foo");
console.log(ref.current) // "foo"
useRef的目的是给您一个对象,其引用不会更改,但其值可能会更改。该值显示为current
。您可以随意访问和重新分配ref.current
,而ref
保持不变。