3

Interval.after当在库中调用方法时,我遇到了 Luxon 的奇怪问题。

const interval = Interval.after(dateTime, duration);

以下日志来自应用程序DateTime__Duration,第二行记录了以下结果Interval.after

1535806800000__PT330M
[2018-09-01T16:00:00.000+03:00 – 2018-09-01T21:30:00.000+03:00)

但是,如果我将这些值传递给库方法并在那里观察日志:

1535806800000__PT330M
Invalid Interval

原因在哪里invalid endpoints。调用isValid并返回 true DateTimeDuration

如果我以与应用程序完全相同的方式进行初始化DateTime,则可以在 lib 中工作。DurationInterval.after

const interval2 = Interval.after(DateTime.fromISO('2018-09-01T16:00:00.000+03:00',
    {zone: 'Europe/Helsinki'}), Duration.fromObject({ minutes: 330 }));

两个调用都使用相同的对象,但Interval.after仅在应用程序内部有效。知道是什么原因造成的吗?

更新

这似乎与DateTime. 即使 luxon 版本相同,它在应用程序与库中的行为是否会有所不同?据我了解,luxon 没有依赖关系。

更新 2

我设法获得了此设置的复制版本。app 和 lib 源都可以从http://www.filedropper.com/luxon下载

用于将本地库链接到我yarn link在库yarn link "luxon-test-lib"中使用的应用程序以及之后的应用程序中。

4

1 回答 1

1

发生这种情况的原因是由于在开发时本地链接库。因此,即使 app 和 lib 具有相同的 luxon 版本,它们都有单独的模块。instanceof由于那里使用了检查,这导致 luxon 库崩溃。

于 2018-10-09T11:07:30.077 回答