语法错误:编译时js文件中的意外标记

时间:2017-06-11 18:37:36

标签: javascript compiler-errors

错误代码:

class App extends Component {


    let memos = {
         date: new Date(),
         text: 'I hope you enjoy learning React!'
    }


    render() {
        return (
            <tr>
                <td>You have no plans yet </td>
            </tr>
        );
    }
}

错误:

  

意外的令牌:

let memos = ...
//  ^ here

我刚开始学习反应,我发现了一个错误。 究竟是什么?

2 个答案:

答案 0 :(得分:1)

代码:

let memos = {
    date: new Date(),
    text: 'I hope you enjoy learning React!'
}

应该包含在构造函数(或其他一些方法)中,它不能只是挂在类本身内部:

constructor() {
    let memos = {
        date: new Date(),
        text: 'I hope you enjoy learning React!'
    };
}

如果您希望let memos = ...可以在其他方法中使用,则可能应将this.memos = ...替换为memos

答案 1 :(得分:-1)

您无法在let中使用constvarclass。在ES2015中,您可以使用static方法或属性或方法转到prototype。 因此,要初始化类的属性,您应该将其添加到构造函数中。

class Person {
    constructor(name){
      this.name = name;
      this.createdAd = new Date();
    }
}

let bob = new Person('Bob');
bob.name // 'Bob'