为什么在React示例中将useRef初始化为null?

时间:2020-07-30 08:32:50

标签: reactjs react-hooks

official React docs和所有示例中,我看到useRef的用法如下:

const ref = useRef(null);

我发现它无需传递任何参数即可工作。显式传递null的目的是什么?

2 个答案:

答案 0 :(得分:0)

"null" 是 ref.current

的值

如果你不传递任何参数,

ref.current=undefined

检查源代码:

   function useRef<T = undefined>(): MutableRefObject<T | undefined>;

如果不传递arg,默认值设置为undefined

避免使用 undefined 因为 undefined 不能序列化。

答案 1 :(得分:-1)

useRef挂钩是一个返回可变ref对象的函数,该对象的.current属性已初始化为所传递的参数(initialValue)。返回的对象将在组件的整个生命周期中保持不变。

但是,在函数返回并呈现内容之前,不会设置ref

因此,将ref声明为null,因为未在屏幕上加载或渲染任何组件,并且在渲染会出错之前声明值。