javascript - React Native App hanging while appending to array/Flatlist
问题描述
So I have a app where I loades messages from my Server/Database. Now I have a big problem which is not really great for the users:
--> When I for loop the messages payload from the backend my whole App is hanging and I can't click anywhere else to e.g. go back and so on.
This is my for loop:
const handleMessagesPayload = (messages, new_page_number) => {
if (messages != null && messages != "undefined" && messages != "None"){
setPageNumber(new_page_number)
console.log(messages)
for (var i = 0; i < messages.length; i++) {
appendChatMessage(messages[i], false)
};
}
}
appendChatMessage function:
const appendChatMessage = (data, isNewMessage) => {
var msg = data.message
var timestamp = data.natural_timestamp
var user_id = data.user_id
var username = data.username
var message_id = data.message_id
logData(msg, timestamp, user_id, username, isNewMessage, message_id)
}
//add the new Messages to array
const logData = (msg, timestamp, user_id, message_username, isNewMessage, message_id) => {
const newMessage = {"message": msg, "username": message_username, "timestamp": timestamp, "message_id": message_id}
newChatMessage.push(newMessage) //newChatMessage is the array I was talking about
};
解决方案
Do you have any useStates()
? This might be the problem if you have any of them because they are very slow.
推荐阅读
- html - Center text under image in flex container
- c++ - 理解 ifstream 对象和读取文件
- c# - 同步运行 HttpRequest C#
- r - R new variable by group looped on multiple lagged and lead values
- javascript - Blur event is not triggering in IE - Angular 2+
- python - 循环现有脚本
- php - 如何将数据表过滤器应用于我的 php 代码?
- google-cloud-platform - Google Cloud Platform (GCP) 免费层级 30 GB 月 HDD 包括标准或 SSD 永久性磁盘?
- c++ - Getting the type of a template template parameter with using
- excel - 嵌入图像未显示在电子邮件中