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

Reactjs:状态重置

如何解决Reactjs:状态重置

我正在使用 socket.io 从 websocket 获取一些数据。我可以使用一次状态的值,但是当我尝试访问状态的值时,我变得未定义。

这是更新状态的函数

const [selectedplayer,setSelectedplayer] = useState();

socket.on("setSelectedplayer",selectedUsername => {
    setSelectedplayer(selectedUsername);
})

当我在这里访问它时,我得到了预期值:

{
  gameStarted &&
  <div className="gameLobby">
    Current Turn is of {selectedplayer};
    Current Positives {positives};
    Current Votes {currentActions};
    <div className="chatBox">
      .......Other Stuff
    </div>
  </div>
}

但是当我尝试在这里访问它时,我得到了 undefined

socket.on("setGameResult",res => {
  if(res = 1){
    setChats(prevChats => ([...prevChats,`${selectedplayer} has passed :)`]));
  }
})

P.S.:更新状态的函数useEffect 内(IDK,如果有任何区别)

您可以在我的 GitHub

上找到完整代码

您可以在以下位置找到更新状态的函数

DAREEE/src/components/room.jsx on line 43

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