gpt4 book ai didi

react-native - 如果不启用远程调试器,React Native 代码将无法工作

转载 作者:行者123 更新时间:2023-12-04 01:36:10 25 4
gpt4 key购买 nike

这是一个奇怪的问题,但由于我真的对此很好奇,所以我想问一下。当我启用远程调试时,我有一段代码可以在 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 实例)时,即使格式错误,它也能工作?因为当我在 Chrome 中 console.log 日期时,它们会正常转换。提前致谢!

最佳答案

这很可能是由于设备上的 JavaScript 执行环境与远程调试器中的 JavaScript 执行环境之间存在细微差异。

在这种情况下,Date构造函数似乎在 Chrome 远程调试环境中接受特定于语言环境的日期格式,但在设备上不接受。这可能是因为您的计算机的区域设置已设置为使用 dd.MM.yyyy 的文化。格式,并将模拟器改为其他内容,例如 en-US . ISO 格式对两者都适用,因为它不受语言环境的支持。

当您在设备或模拟器上运行代码时,代码在 JavaScriptCore 中执行在设备本身上。这是 React Native 在内部用于运行应用程序脚本的 JavaScript 引擎

当您打开远程调试时,React Native 打包程序将改为在您计算机的 Chrome 的 JavaScript 引擎中执行代码,V8 ,并通过 WebSockets 在浏览器和设备/模拟器之间发送消息。

您遇到了使 React Native 中的远程调试不可靠的众多边缘情况之一。您应该始终在没有调试器的情况下在真实设备上测试所有功能。

关于react-native - 如果不启用远程调试器,React Native 代码将无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41874676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com