React Component问题(预计会出现';',但找到了',')

时间:2018-09-26 20:02:44

标签: javascript reactjs

这让我发疯。我刚刚开始尝试学习的反应,但是由于一个非常奇怪的错误,我什至无法进行简单的API调用。...

这是我的代码->

import React, {Component} from 'react';

class ApiPosts extends Component {
    constructor() {
        super();
        this.state = {
            blogPosts: [],
        };
    }
}

componentDidMount(){

    fetch('http://localhost:53595/blog/posts')
    .then(results => {
        return results.json();
    }).then(data => {
        let blogPosts = data.results.map((post) => {
            return(
                <div key={post.results}>
                    <div>{post.body}</div>
                </div>
            )
        });
        this.setState({blogPosts: blogPosts});
        console.log("state", this.state.blogPosts);
    })
}

render(){
    return (
        <div className="container2">
            <div className="container1">
                {this.state.blogPosts}
            </div>
        </div>
    )
}

第12行和第30行(“ componentDidMount(){和render(){”)向我抛出一个错误,表明我没有用';'将其关闭。

该错误显示在Visual Studio代码中,并且由于以下错误->

无法构建我的应用程序
/react-website/src/ApiPosts.js: Unexpected token, expected ; (12:19)

我确实试图关闭该文件中的所有内容,只是为了查看错误的出处,但没有运气。

有什么主意吗?

2 个答案:

答案 0 :(得分:2)

在您的组件类中移动componentDidMount并渲染功能。在给定的代码片段中,它们不在类中。

import React, {Component} from 'react';

class ApiPosts extends Component {
    constructor() {
        super();
        this.state = {
            blogPosts: [],
        };
    }
    componentDidMount() {}
    render() {}
}

答案 1 :(得分:1)

您已在组件本身之外定义了componentDidMountrender

它应该像这样:

import React, {Component} from 'react';

class ApiPosts extends Component {
    constructor() {
        super();
        this.state = {
            blogPosts: [],
        };
    }

    componentDidMount() {
       fetch('http://localhost:53595/blog/posts')
        .then(results => {
            return results.json();
        }).then(data => {
            let blogPosts = data.results.map((post) => {
                return(
                    <div key={post.results}>
                        <div>{post.body}</div>
                    </div>
                )
            });
            this.setState({blogPosts: blogPosts});
            console.log("state", this.state.blogPosts);
        })
    }

    render() {
        return (
            <div className="container2">
                <div className="container1">
                    {this.state.blogPosts}
                </div>
            </div>
        )
    }
}