2017-03-17 27 views
0

我正在用sbt编译我的Reactjs应用程序。编译与Reactjs应用程序浏览时未捕获的语法错误

浏览器异常

Uncaught SyntaxError: Unexpected token : 

编译错误

Parse Error: Line 2: Unexpected token = In C:\Users\martin\Documents\Web Projects\example-app\app\assets\javascripts\nav.jsx:2 1class Nav extends React.Component { 2 static propTypes = { 3 user: React.PropTypes.object 4 }; 5 6 constructor() { 

原因是什么?

我不知道为什么,但浏览器(Chrome)喜欢语法的一种方式,并且sbt编译器没有。

当我将static propTypes = {更改为static propTypes: {时,编译器不再抱怨,但浏览器确实如此。

代码

static propTypes: { 
     user: React.PropTypes.object 
    }; 

    constructor() { 
     super(); 
    } 

    state: {}; 
     componentDidMount() { 
     $.getJSON("./mock-database/users.json", (json) => { 
      this.setState({user: json}); 
     }); 
     } 

回答

1

编译器可能没有设置为启用静态类属性。在大多数情况下,在类的外面定义你的proptypes更容易,它应该编译得很好。

class YourClass extends Component { 
    render() { 
    } 
} 

YourClass.propTypes = { 
user: PropTypes.object.isRequired 
} 
+0

我也可以做同样的状态吗?我在''state得到同样的异常:'' – santafebound

+0

你可以把状态放在构造函数中作为'this.state = {};'如果你的状态是空的,尽管你可以忽略它。 – cssko

相关问题