javascript - 带有反应js的聊天地图,数组内的对象
问题描述
我正在尝试进行基本的聊天。我希望对于每个联系人,我都可以保存来自两个用户的消息并将它们显示在屏幕上(就像在 whatsapp 网络中聊天一样)。
我的代码:
const [chatArr , setChatArr] = useState([
{
id: "v7fAa5OltrU=",
from: "Shai Dayan",
newMsg:{
msgs: [
{sender: 0, text:"Hello there, I'm using Chat !"},
{sender: 1, text:"Hello there, I'm using Chat !"}
]
},
group: false,
players: ['Shai Dayan']
},
我正在尝试像这样映射这些文本:
{chatArr[fullChat].newMsg.msgs.map((element,index)=>{
return <div className='speech-bubble'>
<div className="text-msg">
<div className='name-msg'>
<span className='from'>{chatArr[fullChat].from}</span> <br/>
{element.text}
</div>
<div>
</div>
</div>
</div>
})}
但它不起作用..如何制作一个对象数组,每个对象将包含发送者和文本并按顺序映射它?
解决方案
从您在此处发布的数组中,您可以映射它。
您需要有一个嵌套映射,首先映射您的聊天,然后映射聊天中的每条消息
{
chatArr && chatArr.map((chat,index) => {
return (
<>
{
chat.newMsg.msgs.map((msg,idx) => {
return (
<div className='speech-bubble'>
<div className="text-msg">
<div className='name-msg'>
<span className='from'>{chat.from}</span>
<br/>
{msg.text}
</div>
</div>
</div>
)
})
}
</>
)
}
}
推荐阅读
- python - 下拉菜单不会关闭使用 - Selenium 和 Python
- javascript - 访问开放图层要素对象不起作用
- typescript - 如何将一个对象绑定到一个组件到另一个组件?
- google-colaboratory - 在本地运行时使用 google-colab 时如何访问谷歌驱动器数据?
- shell - Shell 脚本中的 Grep 搜索
- c++ - 数组打印出垃圾值
- python - 在 PYOD 中计算基于直方图的异常值分数的异常分数
- sql - 为什么 T-SQL 中的一批只能有一个 create 语句?
- wpf - WPF - 移动画布
- python - 运行后 Django Docker 应用程序容器未在浏览器上打开