Javascript 意外标记,但不确定原因
我不确定为什么会出现Javascript 意外标记,但不确定原因,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我不确定为什么会出现意外令牌错误。我似乎看不出错误。除非 第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
意外令牌
错误。我似乎看不出错误。除非
第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>
)
}
}
class徽标扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
};
}
componentDidMount(){
$.ajax({
url:this.props.url,
数据类型:“json”,
方法:“GET”,
成功:(回应)=>{
控制台日志(响应);
this.setState({logoPath:response});
}.绑定(此),
错误:(xhr、状态、错误)=>{
console.error(this.props.url,status,err.toString());
}.绑定(此),
数据:{
地点:this.props.location
}
});
}
render(){
返回(
)
}
}
虽然我注意到ArrowFunction是AssignmentExpression,而FunctionExpression是PrimaryExpression(),但我对这个错误感到惊讶,因此arrow函数表达式不是函数
函数表达式的直接下拉菜单。还是很惊讶
您有两个选择:
.bind(this)
调用。箭头函数在创建它们的上下文中关闭此
(就像关闭变量一样)。因此,您只需删除那些bind
调用即可解决此错误
例如:
var foo={
姓名:"富",,
doSomething(){
设置超时(()=>{
日志(“this.name=“+this.name”);
}, 0);
}
};
foo.doSomething();
函数日志(msg){
var p=document.createElement('p');
p、 appendChild(document.createTextNode(msg));
文件.正文.附件(p);
}
虽然我注意到ArrowFunction是AssignmentExpression,而FunctionExpression是PrimaryExpression(),但我对这个错误感到惊讶,因此arrow函数表达式不是函数
函数表达式的直接下拉菜单。还是很惊讶
您有两个选择:
.bind(this)
调用。箭头函数在创建它们的上下文中关闭此
(就像关闭变量一样)。因此,您只需删除那些bind
调用即可解决此错误
例如:
var foo={
姓名:"富",,
doSomething(){
设置超时(()=>{
日志(“this.name=“+this.name”);
}, 0);
}
};
foo.doSomething();
函数日志(msg){
var p=document.createElement('p');
p、 appendChild(document.createTextNode(msg));
文件.正文.附件(p);
}
这意味着,当我想将上下文从this
更改为其他内容时,我必须使用经典函数表示法?@Fidel90:这不是“上下文”,但如果你想让函数的this
具有不同的值,这取决于你如何调用它,你不能使用箭头函数。箭头函数没有自己的this
绑定,因此在调用它们时没有设置this
的机制。相反,它们关闭这个
,就像它是一个变量一样。这意味着,当我想将上下文从这个
更改为其他内容时,我必须使用经典函数表示法?@Fidel90:这不是“上下文”,而是,如果希望函数的this
值随调用方式的不同而变化,则不能使用箭头函数。箭头函数没有自己的this
绑定,因此在调用它们时没有设置this
的机制。相反,它们关闭这个,就像它是一个变量一样。