应用重新加载后保留变量 - React Native

时间:2018-05-30 11:10:51

标签: javascript reactjs algorithm react-native momentjs

所以我有5个变量

const currentTime = moment().unix()
const eventTime = moment().add(12, 'h').unix()
const diffTime =  eventTime - currentTime
const duration = moment.duration(diffTime * 1000, 'milliseconds')
const interval = 1000

和我在componentDidMount

中调用的函数
componentDidMount() {
    setInterval(() => {
      duration = moment.duration(duration.asMilliseconds() - interval, 'milliseconds')
        let h = moment.duration(duration).hours()
        let m = moment.duration(duration).minutes()
        let s = moment.duration(duration).seconds()
        console.log(h, m, s)
    }, interval)
  }

我需要的是,在我重新加载移动应用程序后,diffTime变量将不会默认为12h,但它会在应用程序关闭后继续降低事件。因此,当我加载屏幕时,请在那里停留30分钟然后关闭应用程序2小时然后返回diffTime将是9小时30分钟

感谢您提出任何建议

2 个答案:

答案 0 :(得分:0)

使用缓存存储difftime并继续更新,如 -

storage.save({
        key: 'difftimeKey',   // Note: Do not use underscore("_") in key!
        rawData: {
             difftime
        },
        expires: 1000 * 3600 * 24 * 30  // ms - 30 days
    });

答案 1 :(得分:0)

我看到至少有3种方法:

  • 正如卡里姆建议的那样,你可以使用后台工作......
  • 您可以在关闭应用时将该值保存在服务器上,并在再次加载时检索该值
  • 当应用关闭时,您可以在手机上保存该值和当地时间。打开应用程序(刷新)时将其读回,与实际时间进行比较并减少初始化时的值。要在本地保存,您可以查看:https://facebook.github.io/react-native/docs/asyncstorage.html