reactjs - 在组件类内部和渲染函数外部声明变量以在渲染函数中使用它时出错
问题描述
在下面的代码中,当我通过解构声明可变字符时
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,查看app.js文件
当我将声明放在渲染函数中时没有问题,请查看正确的代码沙箱。
此外,当我在(App.js 文件的)渲染函数之外创建一个变量时,没有 const 或 let 例如:
x=1;
当我在渲染函数中将它用作 this.x 时,它工作正常,但是当我使用 let、const 或 var 声明它时,它会抛出一个 Unexpected token 错误。
你如何解释这种行为?
解决方案
您在渲染方法之外破坏了字符。
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;
})
});
};
render() {
const { characters } = this.state;
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;
推荐阅读
- c# - DateTime.TryParse() 的问题
- snowflake-cloud-data-platform - 无法创建 Snowflake 免费套餐帐户
- java - 我如何在发布请求的正文中发送文件?时髦的
- python - 如何解析 Youtube 构建 API 查询的响应标头(python 烧瓶)
- laravel - 所有者编辑员工时没有参数的Laravel路由
- python-3.x - 无法为 pytest 停止 Tornado
- amazon-web-services - Circle CI 中的云端缓存失效失败
- python - 如何在 Python 中检测窗口调整大小
- c# - Akka.net 测试套件询问方法
- c++ - 从可变参数模板数组引用构造函数初始化双嵌套 std::array