我剛開(kāi)始使用 ReactJS,但在理解狀態(tài)和道具方面仍然存在問(wèn)題。我正在嘗試使用 node.js、React 和 Socket.io 構(gòu)建一個(gè)聊天應(yīng)用程序。在服務(wù)器端一切正常,但是,我很難顯示數(shù)據(jù)。這是我的問(wèn)題:我有一個(gè)包含三個(gè)組件的應(yīng)用程序,組織如下:聊天 |- 消息列表 |- 消息輸入我希望 Chat 組件保存一個(gè)消息列表,該列表由服務(wù)器和 messageInput 組件提供。由于聊天組件將保持狀態(tài),因此我有一個(gè)初始化兩個(gè)變量的構(gòu)造函數(shù)。但是,當(dāng)我從 messageInput 更新這些變量時(shí),會(huì)重新渲染組件,從而導(dǎo)致再次調(diào)用構(gòu)造函數(shù)并重新初始化狀態(tài)。class Chat extends React.Component{ constructor(){ super() this.state = { messageList: [], username:null } }我注意到從服務(wù)器檢索的數(shù)據(jù)不會(huì)導(dǎo)致?tīng)顟B(tài)設(shè)置為默認(rèn)值。輸入重置了 Chat 組件中的狀態(tài)值,但似乎按預(yù)期工作:消息被發(fā)送到服務(wù)器,并顯示給其他客戶(hù)端。我想我還沒(méi)有完全理解如何在組件中正確設(shè)置狀態(tài)。您將在下面找到一些客戶(hù)端代碼。
ReactJS:每次更新時(shí)將狀態(tài)設(shè)置回初始值
猛跑小豬
2021-11-25 19:02:15