这是一个保留字 - 函数错误而不是返回

时间:2018-05-25 11:34:59

标签: javascript reactjs axios

我试图访问一个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'));

2 个答案:

答案 0 :(得分:1)

URL是变量名称的不良选择,很可能是您提到的错误中引用的保留字。也许选择peopleApiEndpoint的更多内容。

一般反馈:

  • 在声明上述变量时,使用const而不是let。您永远不会重新分配此变量。 Read this作为进一步的参考资料。
  • 迭代元素时,不要将索引用作keypers.name可能是关键的更好选择。 Read this作为进一步的参考资料。

答案 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}` 可能是变量名称的更好选择。