в коде ниже, когда я объявляю переменные символы посредством деструктурирования
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;
вот песочница с кодом: песочница с ошибкой, посмотрите файл app.js
и когда япоместите объявление внутри функции рендеринга, нет проблем, посмотрите на правильный код песочница.
Также, когда я создаю переменную, вне функции рендеринга (из файла App.js), без const или let, например:
x=1;
Он прекрасно работает, когда я использую его внутри функции рендеринга как this.x, но когда я объявляю это с помощью let, const или var, это вызывает неожиданноеошибка токена.
Как вы объясните это поведение?