Reactjs 如何在午夜重置变量?-React本地移动应用程序

Reactjs 如何在午夜重置变量?-React本地移动应用程序,reactjs,react-native,momentjs,Reactjs,React Native,Momentjs,我正在使用React Native创建一个移动应用程序,用户可以在其中创建一个任务,并每天为该任务投入一定的时间。我使用React钩子和异步存储来更改和存储数据 主屏幕应该显示用户的任务列表,以及他需要在该任务上工作多长时间。屏幕应显示用户每天必须完成任务的时间(蓝色文本)以及完成任务的剩余时间(红色文本) 问题是,我希望在新的一天开始时(即午夜),红色字体中的值重置为蓝色文本中的相同值。到目前为止,我已经试过了,但似乎不起作用 setTimeout(()=>{ 让newList=allRout

我正在使用React Native创建一个移动应用程序,用户可以在其中创建一个任务,并每天为该任务投入一定的时间。我使用React钩子和异步存储来更改和存储数据

主屏幕应该显示用户的任务列表,以及他需要在该任务上工作多长时间。屏幕应显示用户每天必须完成任务的时间(蓝色文本)以及完成任务的剩余时间(红色文本)

问题是,我希望在新的一天开始时(即午夜),红色字体中的值重置为蓝色文本中的相同值。到目前为止,我已经试过了,但似乎不起作用

setTimeout(()=>{
让newList=allRoutines;
newList.forEach((项目)=>{
item.timeLeft=item.time;
});
writeItemToStorage(新列表);
},力矩(“24:00:00”,“hh:mm:ss”).diff(力矩());
做我需要应用程序做的事情的最佳方式是什么

请帮忙!!
谢谢

有几种方法可以解决这个问题:

  • 有一些设置为
    setTimeout
    ,但您可以使用每分钟运行一次的
    setInterval
    ,检查日期是否已更改。这可能没问题,但您必须小心使用这种方法。这里很容易介绍性能问题

  • 桥接到本机代码。您可以利用一些本机API,当日期发生变化时,它们会提醒您。您可以连接到iOS的系统通知或Android的广播接收器,这也允许您考虑由于时区变化而导致日期变化的场景,具体取决于您要订阅的通知

  • 如果您喜欢option#2的声音,我们创建了它,为您完成所有本地工作,并且非常容易连接