为啥此 setInterval 中未定义此 useRef 值?
Posted
技术标签:
【中文标题】为啥此 setInterval 中未定义此 useRef 值?【英文标题】:Why is this useRef value undefined in this setInterval?为什么此 setInterval 中未定义此 useRef 值? 【发布时间】:2020-09-25 15:21:57 【问题描述】:为什么在这个setInterval
中引用swiss
undefined
?
在每次迭代中,swiss
的值都会被传入。
export default function cheese()
const swiss = useRef("Jarlsberg")
const myInterval = useRef()
myInterval.current = setInterval ( swiss =>
console.log(swiss) //-> undefined
console.log(swiss.current) //-> Error b/c undefined has no properties
, 997)
【问题讨论】:
【参考方案1】:这是因为您错误地使用了setInterval
。在您的箭头函数中,您将swiss
作为参数,而不是参数(您传递的值)。当setInterval
调用您的箭头函数时,它不会传递任何参数,因此为什么swiss
是undefined
。
编辑:您可能还用参数名称“隐藏”了真正的 swiss
值。根据我的测试,如果您删除参数或更改其名称,setInterval
调用中可以使用swiss
。
export default function cheese()
const swiss = useRef("Jarlsberg")
const myInterval = useRef();
myInterval.current = setInterval ( () => // note the change from `swiss` to an empty ().
console.log(swiss) //-> exists!
console.log(swiss.current) //-> Jarlsberg
, 997)
【讨论】:
以上是关于为啥此 setInterval 中未定义此 useRef 值?的主要内容,如果未能解决你的问题,请参考以下文章
JAXB:为啥在生成的 xml 文档中未使用定义的命名空间前缀?
为啥我在打开我的 wordpress 网站时收到此消息(如何解决)?