React Native App 中评论数量的滞后问题

问题描述 投票:0回答:1

我的屏幕正在收到一条一条评论(每 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]);
javascript react-native performance crash
1个回答
0
投票

解决它。我应该使用 React.memo 和崩溃停止。

用途:

我们应该用 React.memo() 包装组件

导出默认React.memo(MyComponent);

© www.soinside.com 2019 - 2024. All rights reserved.