为什么这个 useRef 值在此 setInterval 中未定义?
Why is this useRef value undefined in this setInterval?
为什么在这个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)
}
这是因为您 setInterval
使用不当。在您的箭头函数中,您将 swiss
作为 参数 ,而不是 参数 (您传递的值)。当 setInterval
调用你的箭头函数时,它不会 传递任何参数 ,因此 swiss
是 undefined
.
编辑:您可能还使用参数名称“隐藏”了真实的 swiss
值。通过我的测试,如果您删除参数或更改其名称,swiss
在 setInterval
调用中可用。
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
中引用了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)
}
这是因为您 setInterval
使用不当。在您的箭头函数中,您将 swiss
作为 参数 ,而不是 参数 (您传递的值)。当 setInterval
调用你的箭头函数时,它不会 传递任何参数 ,因此 swiss
是 undefined
.
编辑:您可能还使用参数名称“隐藏”了真实的 swiss
值。通过我的测试,如果您删除参数或更改其名称,swiss
在 setInterval
调用中可用。
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)
}