为什么我无法通过reactjs中的属性名称访问属性json数据?

时间:2019-02-23 13:57:17

标签: node.js reactjs mongodb mongoose-schema

我正在尝试使用mongodb和mongoose从数据库中获取数据。

我有一个请求功能:

<div class="wrapperhome">
<div class="wrappercontact">

我尝试通过console.log显示,没关系:

enter image description here 但是当我通过属性名称访问属性时,console.log显示:null

为什么?

这是我的后端代码:

componentDidMount(){

        fetch('http://localhost:5000/tweet')
        .then(function(response) {
            return response.json();
        })
        .then(result=>{
            this.setState({
                tweetData:JSON.stringify(result)
            });
            console.log(this.state.tweetData);
        });

    }

2 个答案:

答案 0 :(得分:1)

您必须result.data

.then(result=>{
        this.setState({
            tweetData:result.data
        },()=>{
            console.log(this.state.tweetData);
        );

    });

setState是异步的,您可以使用回调函数检查状态更新

答案 1 :(得分:1)

您正在解析JSON,然后再次对其进行字符串化。删除JSON.stringify,它应该可以正常工作。

setState也是异步的,因此您不能在其下面的语句中访问新状态。您可以使用setState的第二个参数,它是设置状态后将调用的回调。

componentDidMount() {
    fetch('http://localhost:5000/tweet')
        .then(response => response.json())
        .then(result => {
            this.setState({
                tweetData: result
            }, () => console.log(this.state.tweetData));
        })
}