javascript - 更改不会影响地图功能并且不会显示:)
问题描述
我正在构建一个聊天应用程序,基本上我正在调用一个函数来获取消息并将其推送到一个对象数组中,该数组看起来像这样
newChat = [{message: "new message ", className: "you", date: new Date()}]
代码看起来像这样
const send_message = (message) => {
newChat.push({
message: message,
className: 'you',
date: new Date().toString()
})
console.log(newChat)
}
const [message, setmessage] = useState(null)
return (
<div className="chat">
{
newChat.map((message, index) => (
<div className={message.className} key={index}>
<div className="message-container">
<h1 className={`message-${message.className}`}>{message.message}</h1>
<h5 className="date">{message.date.split('T')[0] + ' ' + message.date.split('T')[1]}</h5>
</div>
</div>
))
}
<div className="input-container">
<Input onChange={(e) => setmessage(e.target.value)} placeholder="Write a message" />
<Button onClick={() => send_message(message)} type="primary">Send</Button>
</div>
</div>
)
}
导出默认聊天
解决方案
当状态或道具发生变化时反应重新渲染。要在 newchat 更改时更新组件,您需要将其声明为状态。
const [newChat, setNewChat] = useState([{message: "new message ", className: "you", date: new Date()}])
const send_message = (message) => {
setNewChat([
...newChat,
{
message: message,
className: 'you',
date: new Date().toString()
}
]);
}
推荐阅读
- python - 如何根据日期列检查与r中前一行的日期差异为每组重复列分配一个变量?
- java - 访问父 springboot 项目中 JAR 中存在的 javascript 文件
- kotlin - 如何在 Kotlin 中构造函数式代码?
- node.js - 尝试使用 MEAN 应用程序的 3 个实例启动 pm2-runtime
- javascript - 禁用结束日期不超过 10 天的日历 javascript
- html - Django - 我需要实现拖放来上传文件
- jquery - 限制 select2 中的 AJAX 调用
- c - 我们可以在 BG96 LwM2M 实现中添加自定义对象吗?
- visual-c++ - Visual Studio 如何从代码中读取指令?
- android - Kotlin 代码中无法识别 android.arch.lifecycle.ViewModelProviders