簡體   English   中英

重新加載應用程序后保留變量-React Native

[英]Persist variable after app reload - React Native

所以我有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分鍾

謝謝你的建議

使用緩存存儲difftime並繼續更新,例如-

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

我至少看到3種方法:

  • 正如Karim所建議的,您可以使用后台作業...
  • 您可以在關閉應用程序時將該值保存在服務器上,然后在再次加載后將其檢索
  • 當應用關閉時,您可以在手機上保存該值和本地時間。 打開應用程序(刷新)時將其讀回,與實際時間進行比較並在初始化時減小該值。 要保存在本地,您可以看一下: https : //facebook.github.io/react-native/docs/asyncstorage.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM