【发布时间】:2019-03-04 16:25:56
【问题描述】:
在下面的代码中,当我通过解构声明可变字符时
const { characters } = this.state;
我收到一个意外的令牌错误。
import React, { Component } from "react";
import Table from "./Table";
class App extends Component {
state = {
characters: [
{
name: "Charlie",
job: "Janitor"
},
{
name: "Mac",
job: "Bouncer"
},
{
name: "Dee",
job: "Aspring actress"
},
{
name: "Dennis",
job: "Bartender"
}
]
};
removeCharacter = index => {
const { characters } = this.state;
this.setState({
characters: characters.filter((character, i) => {
return i !== index;
})
});
};
const { characters } = this.state;
render() {
return (
<React.Fragment>
<div className="App">
<h1>Hello, React!</h1>
</div>
<div className="container">
<Table
characterData={characters}
removeCharacter={this.removeCharacter}
/>
</div>
</React.Fragment>
);
}
}
export default App;
这里是一个沙箱代码:sandbox with the error, look at the app.js file
当我将声明放入渲染函数时没有问题, 查看correct 代码沙箱。
另外,当我在(App.js 文件的)渲染函数之外创建一个变量时,没有 const 或 let 例如:
x=1;
当我在渲染函数中将它用作 this.x 时,它工作正常,但是当我用 let、const 或 var 声明它时,它会抛出一个 Unexpected token 错误。
你如何解释这种行为?
【问题讨论】:
标签: reactjs class variables render