如何解决useState 未按预期呈现
我有一个名为 chats
的状态,我在其中存储来自 firebase 的所有消息,并尝试在应用程序中呈现它。但它不呈现
这是我的组件的状态:
const [chats,setChats] = useState([]);
我将消息带入 UseEffect 钩子以使其运行应用程序
useEffect(() => {
let merged_uid = uid_merger(current_user.id,chat_user.uid);
database()
.ref('/')
.child(`chats/${merged_uid}`)
.on('child_added',(msgs) => {
console.log(msgs);
chats.push(msgs.val());
setChats(chats);
});
},[]);
但 id 不呈现。
解决方法
由于聊天是一种状态,因此您无法使用 chats.push(msgs.val());
对其进行变异,而您需要做的是替换
chats.push(msgs.val());
setChats(chats);
与
setChats([...chats,msgs.val()])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。