React Signalr 访问状态变量

时间:2021-07-30 19:53:16

标签: reactjs signalr.client

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

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 回调中帖子显示空与被填充的想法?谢谢

1 个答案:

答案 0 :(得分:0)

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