如何在react服务器端渲染应用程序中使用decorator



我有一个应用程序(带有SSR(正在运行。最近我尝试添加对decorator的支持。我已经完成了配置,当应用程序在浏览器中运行时,它运行得非常好(因为浏览器中运行的代码是babel transpland(。

然而,当代码(包含装饰器的组件(在服务器端呈现时,它会中断——可能是因为正在执行的代码没有被转换,节点无法理解@符号。

它低于错误

(node:1932) UnhandledPromiseRejectionWarning: SyntaxError: 
src/components/common/InputBox/InputBox.js: Unexpected token (8:0)
import './InputBox.scss';
7 |
>  8 | @autobind
| ^
9 | class InputBox extends Component {
10 |     constructor(props) {
11 |         super(props);

我该怎么解决这个问题?

感谢

似乎还没有设置对装饰器的支持。这意味着您的代码没有转换,并且node(运行服务器脚本(不知道如何处理@foo类型的代码。第二阶段的装饰人员(参见https://tc39.github.io/proposal-decorators/(,而不是语言的一部分。如果您使用babel来转换代码,请添加相应的插件(@babel/plugin-proposal-decorators(。

最新更新