微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React Signalr 访问状态变量

如何解决React Signalr 访问状态变量

所以当新消息从信号器传入时,我试图更新我的状态,但是当控制台记录状态变量时,它是空的。

const [posts,setPosts] = useState([]);

useEffect(() => {
  const results = await myApiCall();

  setPosts(results);
},[]);

useEffect(() => {
  websocket.connection.off(‘OnPostCreated’,(data) => {
    console.log(posts);
  });

  websocket.connection.on(‘OnPostCreated’,(data) => {
    console.log(posts);
  });

},[posts]);

我从控制台日志得到的响应是一个空数组。我知道帖子不是空的,因为我在我的页面上看到了帖子。如果我用 setPosts(data) 替换控制台日志,它会将所有帖子替换为从信号器返回的帖子。关于为什么在 on 回调中帖子显示空与被填充的想法?谢谢

解决方法

看看 react-use-signalr 这会照顾你的状态和钩子 ;) https://github.com/pguilbert/react-use-signalr

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。