我想定义一个函数,该函数根据其参数发出提取请求,因此我可以简化componentDidMount()内部的提取调用。我已经尝试过下面的代码,但它为setState函数提供了意外的令牌错误。有没有办法在then()内部使用函数的参数?
constructor() {
super();
// cases in date order from 1 to 5. Cases5 is the latest.
this.state = {
cases1: [],
cases2: [],
cases3: [],
cases4: [],
cases5: [],
};
}
componentDidMount() {
fetch("/cases/1")
.then((res) => res.json())
.then((cases1) => this.setState({ cases1 }));
fetch("/cases/2")
.then((res) => res.json())
.then((cases2) => this.setState({ cases2 }));
fetch("/cases/3")
.then((res) => res.json())
.then((cases3) => this.setState({ cases3 }));
fetch("/cases/4")
.then((res) => res.json())
.then((cases4) => this.setState({ cases4 }));
fetch("/cases/5")
.then((res) => res.json())
.then((cases5) => this.setState({ cases5 }));
}
fetchCaseData = (index) => {
fetch(`/cases${index}`)
.then((res) => res.json())
.then((`cases${index}`) => this.setState({ `cases${index}` }));
}
答案 0 :(得分:0)
您不能简单地为变量声明动态名称。但是,您可以使用方括号符号设置对象的动态键,但不能使用对象速记语法
更新后的代码如下所示
.then((val) => this.setState({ [`cases${index}`]: val }));