无法访问使用效果钩子内部的更新状态



我有一个节点服务器,它侦听load video事件,然后发出load事件,以加载视频。

我在我的客户端内监听这个事件,如下所示:

useEffect(() => {
    socketRef.current = io.connect('/');
    socketRef.current.on("load", () => {
        loadVideo();
    })
}, []);

对于本例,loadVideo函数只记录videoID的值,设置如下:

<input type="text" placeholder="video link" value={videoID} onChange={e => setVideoID(e.target.value)} />

每次从useEffect内部执行loadVideo函数时,它都会记录初始状态,这是一个空字符串,但如果我要从不在useEffect内的其他函数调用该函数,那么它会记录更新后的值。有人能解释一下为什么会这样吗?

这是因为useEffect没有依赖项,这意味着它只在组件安装时调用。我将添加videoId作为它的依赖项。

顺便说一句,如果你在这里发布你的loadVideo代码,那不会有什么坏处:(

相关内容

  • 没有找到相关文章

最新更新