2017-03-17 29 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

相關問題