React.js useRef钩子不返回预期对象

时间:2020-03-06 21:59:58

标签: javascript reactjs

我正在使用React钩子,我有下面的代码:

const [_va, _setva] = useState(0);
const va = useRef({current: _va});
console.log(va);

因此according to the documentationva的期望值是一个对象,它具有一个current属性,该属性包含最初为0的期望值。

但是当我运行脚本时,我得到了以下结果:

result

换句话说,不是va.current包含期望值,va.current包含另一个current属性,该属性包含期望值。这意味着我必须访问va.current.current才能访问所需的值。

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:3)

您误解了文档;您将设置ref的值,并在返回对象的current属性中返回它:

const ref = useRef("foo");
console.log(ref.current) // "foo"

useRef的目的是给您一个对象,其引用不会更改,但其值可能会更改。该值显示为current。您可以随意访问和重新分配ref.current,而ref保持不变。