Javascript 反应问题-@是意外标记

Javascript 反应问题-@是意外标记,javascript,reactjs,webpack,react-redux,Javascript,Reactjs,Webpack,React Redux,我正在尝试实现react keydown,可以在这里找到:使用以下代码示例: 从“React”导入React; 导入keydown,{Keys}来自'react keydown'; 类MethodDecoratorExample扩展React.Component{ 建造师(道具){ 超级(道具); 此.state={ 你好:false }; } @向下键('enter') toggleHello(){ this.setState({hello:!this.state.hello}); } re

我正在尝试实现react keydown,可以在这里找到:使用以下代码示例:

从“React”导入React;
导入keydown,{Keys}来自'react keydown';
类MethodDecoratorExample扩展React.Component{
建造师(道具){
超级(道具);
此.state={
你好:false
};
}
@向下键('enter')
toggleHello(){
this.setState({hello:!this.state.hello});
}
render(){
返回(
方法装饰器示例
按enter键切换hello。
{this.state.hello&&
Enter是键代码{Keys.Enter}!
}
然后再次单击框外以查看范围。
);
}
}
我在这里找到了答案:

感谢@cbll提到decorators,因为我不知道这是正确的术语。帮助我搜索解决方案

我在这里找到了答案:


感谢@cbll提到decorators,因为我不知道这是正确的术语。帮助我搜索解决方案

巴贝尔6不再支持ES装饰器语法,因此您需要安装
巴贝尔插件转换装饰器旧式
插件

安装babel插件转换装饰器 将插件添加到您的
.babelrc
或 直接在
webpack.config.js中添加加载程序

{
  test: /\.jsx?$/,
  loader: 'babel',
  query: {
    cacheDirectory: true,
    plugins: ['transform-decorators-legacy' ]
  }
}

Babel 6不再支持ES装饰器语法,因此您需要安装
Babel插件transform decorators legacy
插件

安装babel插件转换装饰器 将插件添加到您的
.babelrc
或 直接在
webpack.config.js中添加加载程序

{
  test: /\.jsx?$/,
  loader: 'babel',
  query: {
    cacheDirectory: true,
    plugins: ['transform-decorators-legacy' ]
  }
}

您是否使用webpack或类似工具构建了它?我不确定,但看看他们的package.json,你有decorators等,我认为必须对其进行处理才能在浏览器上运行。@cbll我正在使用webpack-我是否遗漏了一些内容?你是否使用webpack或类似工具构建了它?我不确定,但看看他们的package.json,你有decorators等,我认为必须对其进行处理才能在浏览器上运行。@cbll我正在使用webpack-我是否遗漏了一些东西?
{
  test: /\.jsx?$/,
  loader: 'babel',
  query: {
    cacheDirectory: true,
    plugins: ['transform-decorators-legacy' ]
  }
}