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
    的机制。相反,它们关闭
    这个
    ,就像它是一个变量一样。