React JSX 中的 try-catch 语句

新手上路,请多包涵

根据 JSX 参考,这就是 try-catch 语句的样子

try {
  statement*
} [catch (varname : type) {
  statement*
}]* [finally {
  statement*
}]

我尝试了以下

try {
  console.log(window.device.version)
} catch (e : TypeError) {
  console.log('Error')
}

导致错误

模块构建失败:SyntaxError: Unexpected token, expected ) (11:15)

 9  |     try {
10 |       console.log(window.device.version)
11 |     } catch (e : TypeError) {
   |                ^
12 |       console.log('Error')
13 |     }
14 |     return (

那么在 JSX 中使用 try-catch 语句的正确方法是什么?

原文由 MetaTom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 939
2 个回答

反应 JSX

它看起来像 TypeScript 样式。只需使用 try{ } catch(e) { console.error(e); } 就可以了。

看看 MDN ,不要忘记 JSX 只是 React.createElement 的语法糖。

JSX - 更快、更安全、更简单的 JavaScript

您提到的链接 不是 React React JSX,而是一个全新的东西,称为 DeNA JSX。

看看 DeNA JSX 和 这个 PR 中的 这个问题

原文由 NoobTW 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 JSX 或 JavaScript 中你可以这样写

try {
console.log(window.device.version)
} catch (e) {
console.log('Error')
}

如果您使用的是 TypeScript,您之前的代码应该可以工作

希望有帮助

原文由 bruhbruh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进