首页 > 解决方案 > React Native:应用程序卡在使用时刻计算简单的日期循环

问题描述

我正在使用 RN 开发一个应用程序,它处理很多日期。我有一个辅助函数来计算日期数组,这些日期是两个给定日期之间的星期的开始。我在我的网名 SelectWeek 的 useEffect 函数中调用了这个辅助方法。这是我的功能:

static getWeeks(unixTime) {
    const result = [];
    const createdTime = moment(
      moment(unixTime, "X").format("YYYY-MM-DD"),
      "YYYY-MM-DD"
    );
    const today = moment(new Date()).add(8, "days");
    let temp = createdTime;

    while (temp.format("X") < today.format("X")) {
      result.push(temp.format("jYYYY-jMM-jDD"));
      temp = temp.endOf("week").add(1, "minutes");
    }

    return result;
  }
export default function SelectWeek(props) {

useEffect(() => {
    const listWeek = TimeHelper.getWeeks(createdTime);
    console.log(listWeek);
  }, []);

return ( // some jsx code )

}

如果周数很少,该应用程序可以正常工作。但是,当我在第二个日期(今天)中添加更多天数时,例如,如果我添加 80 天而不是 8 天,当我想挂载 SelectWeek 屏幕时,应用程序冻结并且屏幕未挂载。手机也立即开始过热。

有什么建议吗?

标签: react-nativeexpo

解决方案


推荐阅读