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 (将#修改为@)