Everytime an object is received from server-side socket, a new div element with a message inside must be appended to the DOM.
Instead the div element is being overwritten again and only one div element is produced.
state = {
chatMessage: ''
}
componentDidMount() {
socket.on('retrieve-chat-left', (data) => {
var message = data.map(data => {
console.log(data.name, data.message);
return <ChatListLeft key={data._id} name={data.name} chatMessage={data.message} />
});
this.setState({
chatMessage: message
});
});
}
render() {
return (
<div className="mainbodybar">
{this.state.chatMessage}
</div>
)
}
// ChatListLeft component
import React from 'react'
export default function ChatListLeft({ chatMessage, name }) {
return (
<div className="retrieve-chat-left">
{chatMessage}
{name}
</div>
)
}