我试图访问一个api,只是在每次点击一个按钮时都存储状态(我从中获取),但是一旦我尝试 npm start 它,它给出语法错误:这是一个保留字。 我不知道为什么会这样,我想要一些答案,如果无论如何你看到任何改进我的代码的缺陷或方法也随时告诉我。 这是代码:
import React from 'react';
import ReactDOM from 'react-dom';
import axios from 'axios';
class List extends React.Component {
constructor(props){
super(props);
this.state = {
personagens: [],
page: 1,
};
this.getNextPers = this.getNextPers.bind(this);
}
getNextPers(){
let URL = 'https://swapi.com/api/people/'+{this.state.page};
axios.get(URL).then((p) => this.setState({ personages: [...{this.state.personagens}, ...p], page: {this.state.page}+1 }));
}
render(){
return (
<div>
<p>Personagens</p>
{this.state.personagens.map(pers, i) => (
<div key={i}>
<p>{pers.name}</p>
</div>
)}
<button onClick={this.getNextPerson}>Proximo Personagem</button>
</div>
);
}
}
ReactDOM.render(<List />, document.getElementById('root'));
答案 0 :(得分:1)
URL
是变量名称的不良选择,很可能是您提到的错误中引用的保留字。也许选择peopleApiEndpoint
的更多内容。
一般反馈:
答案 1 :(得分:1)
在 mt = as.data.frame(matrix(data = rnorm(n = 400), ncol = 4))
par(mfrow = c(2,2))
plot(density(mt$V1))
plot(density(mt$V2))
plot(density(mt$V3))
plot(density(mt$V4))
mtext(text = "Test", outer = T, side = 3)
花括号是问题所在。尝试:
let URL = 'https://swapi.com/api/people/'+{this.state.page};
或
const URL = 'https://swapi.com/api/people/' + this.state.page
(两者都有效)
我同意其他人认为小写
const URL = `https://swapi.com/api/people/${this.state.page}`
可能是变量名称的更好选择。