我正在做一个聊天应用程序与django渠道和React,我希望来自不同用户的消息以不同的颜色显示。
要创建消息,我将它们保存在状态
const [messages,setMessages] = useState([])
chatSocket.onmessage = function(e) {
if (ran == true) {
const data = JSON.parse(e.data);
setMessages(old => [...old, <p ref={oneRef} className={currentUser[0]?.username}>{data.message}</p>])
}
}
function theone(e) {
e.preventDefault()
chatSocket.send(JSON.stringify({
'message': myInput
}));
setMyInput2('')
<form onSubmit={theone} className="myForm">
<input onChange={isChanging} placeholder="Message..." type="text" value={myInput} />
</form>
对于每个消息的className,它是当前用户的用户名。我基本上想做这样的事情。
{currentUser.username} {
background:'red'
}
如果没有,就会出现不同的颜色。
我怎么能让它工作。
1条答案
按热度按时间uajslkp61#
您应该在将消息发送到chatSocket时包含发件人。理想情况下,这应该由后端注入,否则您的API可能会被利用。但这看起来像一个游戏组应用程序,所以这里有一个简单的解决方案。
然后在
onmessage
中,使用最后将
messages
渲染如下:使用css来区分消息-