jac*_*ack 9 typescript reactjs react-native
我正在尝试映射一个数组并使用它的值或键作为我在 React Native (Android) 中返回的数据。\n任何人都可以解释为什么值 0 被读取为 NaN 吗?\n我在使用打字稿枚举。
\n我正在使用:\ntypescript v.4.7.4、RN 0.69.2 和 React 18
\n带有控制台输出的简单代码示例:
\nconst R = [...Array(4).keys()];\nR.map((_i, key) => {\n console.log(_i, key);\n}); \n\n\nOutput: \nNaN NaN // value 0 is interpreted as NaN ???\n1 1\n2 2\n3 3\nRun Code Online (Sandbox Code Playgroud)\n仅当在调试模式下通过 console.log 或 VSCode 检查器直接评估该值时,才会发生这种情况。每当我使用 \xc3\xa0 模板字符串时,该值都会正确显示。
\nR.forEach(i => {\n console.log(`value is : ${i} is ${typeof i}`);\n console.log(i);\n});\n\nOutput: \nvalue is : 0 is number\nNaN\nvalue is : 1 is number\n1\nvalue is : 2 is number\n2\nvalue is : 3 is number\n3\nRun Code Online (Sandbox Code Playgroud)\n任何帮助表示赞赏。
\noutput for 'npx react-native info'\n\ninfo Fetching system and libraries information...\nSystem:\n OS: Windows 10 10.0.22000\n CPU: (12) x64 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz\n Memory: 11.90 GB / 31.92 GB\n Binaries:\n Node: 18.6.0 - C:\\Program Files\\nodejs\\node.EXE\n Yarn: 1.22.15 - C:\\Program Files (x86)\\Yarn\\bin\\yarn.CMD\n npm: 8.13.2 - C:\\Program Files\\nodejs\\npm.CMD\n Watchman: Not Found\n SDKs:\n Android SDK:\n API Levels: 31, 33\n Build Tools: 30.0.3, 33.0.0\n System Images: android-32 | Google APIs Intel x86 Atom_64, android-33 | Google APIs Intel x86 Atom_64, android-33 | Google Play Intel x86 Atom_64\n Android NDK: Not Found\n Windows SDK:\n AllowAllTrustedApps: Enabled\n AllowDevelopmentWithoutDevLicense: Enabled\n Versions: 10.0.19041.0\n IDEs:\n Android Studio: AI-212.5712.43.2112.8609683\n Visual Studio: 17.1.32328.378 (Visual Studio Community 2022), 16.11.32106.194 (Visual Studio Community 2019)\n Languages:\n Java: 17.0.1 - C:\\Program Files\\Java\\jdk-17.0.1\\bin\\javac.EXE\n npmPackages:\n @react-native-community/cli: Not Found\n react: 18.0.0 => 18.0.0\n react-native: 0.69.2 => 0.69.2\n react-native-windows: Not Found\n npmGlobalPackages:\n *react-native*: Not Found\n\n\n\nRun Code Online (Sandbox Code Playgroud)\n
事实证明,这是VSCode 的某种问题。
NaN 输出仅在使用 VSCode 调试控制台或活动 VSCode 调试器(将鼠标悬停在变量上)时出现。
logcat 输出是正确的。此外,console.log(typeof variable) 显示变量类型为数字(这确实是正确的)。
const R = [...Array(4).keys()];
R.map((_i, key) => {
console.log(_i, key,typeof _i,typeof number);
});
Output in VSCode Debuger Console:
NaN NaN number number
1 1 number number
2 2 number number
3 3 number number
Output via Logcat
0 0 number number
1 1 number number
2 2 number number
3 3 number number
Run Code Online (Sandbox Code Playgroud)
谢谢大家的帮助 !!
| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |