我的屏幕正在收到一条一条评论(每 1 秒)。它在前几条评论中不会滞后,但随着添加的评论数量增加,我的应用程序开始滞后,最终几乎冻结。这个问题与我从 API 获取的图像和名称无关,因为即使我仅从 JSON 文件添加注释,它也会滞后
我用FlatList做了各种调整,但没有效果。我有这个组件,我用 App.js 中的一个scrollView 包裹它,它会自动滚动。我关闭了scrollView,当我直接在屏幕上显示时,有滞后。所以,这个问题完全和屏幕上的评论数量有关。
seEffect(() => {
const getData = async () => {
try {
let apiUrl = `https://randomuser.me/api/?results=60&nat=${language}`
let jsonData
if (language === "tr") {
jsonData = require(`./languages/commentstr.json`);
}
else {
jsonData = require(`./languages/commentsus.json`);
}
const res = await axios.get(apiUrl);
setResults(res.data.results);
const userCount = res.data.results.length;
const commentCount = jsonData.length;
let randomComments = [];
for (let i = 0; i < userCount; i++) {
const commentIndex = i % commentCount;
randomComments.push(jsonData[commentIndex].text);
}
setComments(randomComments);
const interval = setInterval(() => {
if (currentIndex < userCount) {
setCurrentIndex((prevIndex) => prevIndex + 1);
} else {
clearInterval(interval);
}
}, 1000);
} catch (error) {
console.log("hata var:", error);
}
};
getData();
}, [language]);
解决它。我应该使用 React.memo 和崩溃停止。
用途:
我们应该用 React.memo() 包装组件
导出默认React.memo(MyComponent);