easy-team / egg-react-webpack-boilerplate

Egg React Server Side Render(SSR) / Client Sider Render(CSR)
https://easyjs.cn/egg-react
MIT License
671 stars 93 forks source link

ES7的方式定义React组件报错 #10

Closed beautycss closed 6 years ago

beautycss commented 6 years ago

该工程骨架目前使用都正常,但是发现拷antd pro的示例模块过来报错,例如:

class LoginDemo extends React.Component {
  state = {
    notice: '',
    type: 'tab2',
    autoLogin: true,
  }

  onTabChange = (key) => {
    this.setState({
      type: key,
    });
  }

  render() {
    return (
      <Login
        defaultActiveKey={this.state.type}
        onTabChange={this.onTabChange}
      >
          <a style={{ float: 'right' }} href="">注册账户</a>
      </Login>
    );
  }
}

image

image

问题:

  1. 这种定义state的方式报错;
  2. class里使用箭头函数报错; 可能是目前不支持ES7的方式写React;

尝试了安装babel-preset-stage-0babel-preset-es2017,然后在.babelrc 里的presets添加stage-0es2017,这样也不行,重启webpack进行编译依然报错。

hubcarl commented 6 years ago

@beautycss 这个好像是 eslint 的错误,可以关掉eslint 试试:

loaders:{
 eslint: false
}

如果OK,再回过头来修复 eslint试试

xinjingfen commented 6 years ago

我也遇到同样的问题,我的是加载css报的错。 image 我尝试关闭eslint image 还是报同样的错

shusc24 commented 6 years ago

这事 我加 mobx 时候也是 找了很久 加了 transform-class-properties
transform-decorators-legacy 好像可以 babel 这鬼东西 真头大

{ "presets": [ "react-latest", ["env", { "modules": false }] ], "plugins": [ "transform-decorators-legacy", "react-hot-loader/babel", "transform-object-assign", "syntax-dynamic-import", "transform-object-rest-spread", "transform-class-properties", ["import", { libraryName: "antd", style: "css" }] ], "comments": false }