【问题标题】:Update React [Native] View on Day Change更新 React [Native] 对 Day Change 的看法
【发布时间】:2015-12-23 07:29:12
【问题描述】:

我正在开发一个 React Native 组件,它应该在日期发生变化时自行更新,即使用户没有与视图进行交互。

setInterval 是解决这个问题的唯一方法吗?如果我在viewDidLoad 中调用setTimeout 指定直到第二天的毫秒数,如果应用程序暂停,间隔会不会不准确?或者,我可以运行一个定期计时器,但我需要给它一个较短的时间间隔,以便在一天变化时没有明显的延迟——看起来效率很低。

我错过了什么吗?

【问题讨论】:

  • 我认为您可以检查应用程序何时以某种方式恢复,也许您需要编写一些 ObjC 或 Java 代码,这应该会有所帮助:)
  • 这有点违背了 React Native 的目的,不是吗?
  • 不是真的 :) 并不是所有的原生特性都已经在 React Native 中实现了(也许它们不会实现)。所以这就是为什么用它来创建原生扩展真的很容易,见这里:facebook.github.io/react-native/docs/…

标签: javascript ios reactjs settimeout react-native


【解决方案1】:

我想这更像是一个普遍的应用架构问题。最简单的答案是您应该以秒为单位计算当前时间 (new Date().getTime()),确定距离第二天还有多少秒,并为该数字设置一个计时器。

但是,正如您所提到的,一旦应用被终止,该计时器将不再准确。

您应该使用AppStateIOS 来监听应用程序何时处于后台和前台。发送到后台后,清除计时器。被带到前台后,再次运行原始计算并生成一个新的计时器。

很遗憾,目前 Android 上还没有等效的功能。

【讨论】:

    【解决方案2】:

    您可以使用react-native-midnight,它订阅本机 API 并在日期从时区更改或超过午夜阈值发生更改时触发事件侦听器。

    【讨论】:

    • 当应用程序关闭/从最近的任务列表中删除/强制关闭/不在内存中时,它将不起作用。还有其他方法吗?
    • 如果您的应用程序已退出或关闭,那么这个问题可能与您的问题不匹配,对吧?这里的问题是如何在日期变化时更新应用程序中的某些内容,如果您的应用程序关闭,则没有什么可更新的,并且在打开时应该有一组新数据?
    猜你喜欢
    • 1970-01-01
    • 2020-02-15
    • 2019-03-27
    • 2021-01-23
    • 1970-01-01
    • 2022-01-22
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多