![](/img/trans.png)
[英]SyntaxError: Unexpected token < in JSON at position 0 - Not sure why
[英]Unexpected Token but not sure as to why
我不確定為什么會收到Unexpected Token
錯誤。 我似乎看不到錯誤。 除非
第41行是: }.bind(this),
this.setState
之后
ERROR in ./app/views/components/navbar.js
Module build failed: SyntaxError: /Users/bli1/Development/projects/cherngloong/cherngloong/app/views/components/navbar.js: Unexpected token (41:4)
console.log(response);
this.setState({logoPath: response});
}.bind(this),
error: (xhr, status, err) => {
console.error(this.props.url, status, err.toString());
}.bind(this),
at Parser.pp.raise (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:1378:13)
at Parser.pp.unexpected (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:2817:8)
at Parser.pp.expect (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:2811:33)
at Parser.pp.parseObj (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:937:12)
at Parser.pp.parseExprAtom (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:718:19)
at Parser.parseExprAtom (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:4305:22)
at Parser.pp.parseExprSubscripts (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:504:19)
at Parser.pp.parseMaybeUnary (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:484:19)
at Parser.pp.parseExprOps (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:415:19)
at Parser.pp.parseMaybeConditional (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:397:19)
at Parser.pp.parseMaybeAssign (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:360:19)
at Parser.pp.parseExprListItem (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:1206:16)
at Parser.parseExprListItem (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:3692:24)
at Parser.pp.parseCallExpressionArguments (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:580:20)
at Parser.pp.parseSubscripts (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:543:29)
at Parser.pp.parseExprSubscripts (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:514:15)
at Parser.pp.parseMaybeUnary (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:484:19)
at Parser.pp.parseExprOps (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:415:19)
at Parser.pp.parseMaybeConditional (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:397:19)
at Parser.pp.parseMaybeAssign (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:360:19)
at Parser.pp.parseExpression (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:324:19)
at Parser.pp.parseStatement (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:1874:19)
at Parser.parseStatement (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:3507:22)
at Parser.pp.parseBlockBody (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:2208:21)
at Parser.pp.parseBlock (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:2189:8)
at Parser.pp.parseFunctionBody (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:1125:22)
at Parser.parseFunctionBody (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:3494:20)
at Parser.pp.parseMethod (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:1094:8)
at Parser.parseClassMethod (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:3735:12)
at Parser.pp.parseClassBody (/Users/bli1/Development/projects/cherngloong/cherngloong/node_modules/babylon/index.js:2456:10)
@ ./app/views/components/layout.js 17:14-36
Reactjs組件
class Logo extends React.Component {
constructor(props) {
super(props);
this.state = {
};
}
componentDidMount() {
$.ajax({
url: this.props.url,
dataType: 'json',
method: 'GET',
success: (response) => {
console.log(response);
this.setState({logoPath: response});
}.bind(this),
error: (xhr, status, err) => {
console.error(this.props.url, status, err.toString());
}.bind(this),
data: {
location: this.props.location
}
});
}
render() {
return (
<div className="logo">
<a href="/">
<img src={ this.state.logoPath } alt="Home"/>
</a>
</div>
)
}
}
我對錯誤感到驚訝,但我注意到,ArrowFunction是AssignmentExpression而FunctionExpression是PrimaryExpression( 規格 ),所以箭頭函數表達式不是直接降插件的function
函數表達式。 還是很驚訝。
您有兩個選擇:
您不需要那些.bind(this)
調用。 箭頭函數在創建它們的上下文中關閉this
函數(就像關閉變量一樣)。 因此,您只需刪除這些bind
調用即可解決該錯誤。
例:
var foo = { name: "foo", doSomething() { setTimeout(() => { log("this.name = " + this.name); }, 0); } }; foo.doSomething(); function log(msg) { var p = document.createElement('p'); p.appendChild(document.createTextNode(msg)); document.body.appendChild(p); }
或者,如果您需要bind
(可能是咖喱參數; this
部分將被忽略),則將括號放在箭頭函數周圍:
$.ajax({ success: ((response) => { // ----------^ }).bind(null, arg0, arg1/*...*/) // --^ ^^^^-- will be ignored, arrow functions inherit `this` });
例:
var foo = { name: "foo", doSomething() { setTimeout(((arg) => { // ----------^ log("this.name = " + this.name + ", arg = " + arg); }).bind(null, "bar"), 0); // ^ ^^^^-- ignored, could be anything } }; foo.doSomething(); function log(msg) { var p = document.createElement('p'); p.appendChild(document.createTextNode(msg)); document.body.appendChild(p); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.