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

我的反应状态变量在使用 websocket 时没有更新

如何解决我的反应状态变量在使用 websocket 时没有更新

你好,我正在使用 websocket 来获取我的数据,问题是当我尝试将数据保存到我的状态时,反应组件正在按预期重新渲染,但我的数据没有保存在状态变量中

export default function ResultPageContent() {
  const processed = useSelector((state) => state.processedSlice);
  const [data,setData] = useState({});

  const fetchData = (links) => {
    const socket = new webSocket("ws://localhost:5000/");
    socket.onopen = () => {
      socket.send(JSON.stringify(links));
    };

    socket.onmessage = ({ data }) => {
      const tempData = JSON.parse(data);
      setData(tempData);
    };
    socket.onclose = () => {};
  };
  const renderContent = () => {
    if (data.per < 100) {
      return <CircularProgressWithLabel value={data.per} />;
    }
  };
 if (processed) {
    console.log("links",links);
    fetchData(links);
    dispatch(MAKE_FALSE());
  }

  return (
    <div>
      <Paper
        style={{
          width: "100%",background: theme.palette.background.default,marginBottom: "50px",}}
        className={classes.root}
      >
        {renderContent()}
      </Paper>
    </div>
  );
}```

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