同步多个coundowns o不同的设备反应原生

时间:2018-04-28 04:49:43

标签: javascript firebase react-native momentjs

您好我使用React Native创建了一个Auctions App我有一个Flat List用于渲染拍卖中的每个产品。在Flat List组件上,我需要1000毫秒的间隔来更新所有项目的状态。

为了更新当前时间,我使用以下方法:



updateTime(){
let currentTime = moment().unix();
let diffTime = this.state.product.endTime - currentTime;
let duration = moment.duration(diffTime * 1000, 'milliseconds');
          
return duration.hours() + ":" + duration.minutes() + ":" + duration.seconds();
}




我从Firebase Firestore中检索每个产品的结束时间。

但由于某种原因,我不明白,不同设备的剩余时间在2,3或甚至4秒之间变化。

如果你能告诉我我做错了什么或者最好的方法是什么,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

moment()获取设备上设置的时间,因此预计您的不同设备不会设置为完全相同的时间。

您可以使用经过时间间隔代替在获取产品结束时间后倒计时:

setInterval(() => this.setState(prevState => ({ timeElapsed: prevState.timeElapsed + 1 }), 1000);
...
const timeRemaining = this.state.product.endTime - this.state.timeElapsed