【发布时间】:2017-06-11 23:54:15
【问题描述】:
这是一个奇怪的问题,但由于我对此非常好奇,所以我想问一下。当我启用远程调试时,我有一段代码可以在 iOS 模拟器中运行,但如果没有它,它就会停止工作。这是代码:
let filtered = []
let dueDate
const dateNow = new Date(Date.now())
for (let item of this.props.listData) {
dueDate = new Date(item.dueDate)
if (!item.paid && (dueDate < dateNow)) {
filtered.push(item)
}
}
if (filtered.length > 0) {
this.setState({
dataSource: this.state.dataSource.cloneWithRows(filtered)
})
}
(item.dueDate 是一个类似“12.02.2016”的字符串)
如果我以正确的格式(如 ISO“2016-02-12”)提供日期,显然该代码将有效(并且有效)。我感兴趣的是,为什么当我启用远程调试(启动 Google Chrome 实例)时,即使格式错误,它也能正常工作?因为当我 console.log Chrome 中的日期时,它们会正常转换。提前致谢!
【问题讨论】:
-
它究竟是如何停止工作的?
-
过滤器仅在启用调试器的情况下工作,因此很难精确调试它发生的位置,但我确定这是因为日期格式 - 当我将其更改为 ISO 时,它可以工作现在(如果我在 JavaScript REPL 中尝试使用错误的格式,它也不会工作)。
标签: react-native ios-simulator