首页 > 解决方案 > 为什么 Axios.get 给我一个 [object Object]

问题描述

我正在尝试将 JSON 对象放入数组中以显示在表上,但是它给了我以下错误:TypeError: this.state.allVersions.map is not a function。

componentDidMount()
{
    axios.get('http://localhost:5000/myblog/' + this.props.match.params.id).then(res =>
    {
        console.log(res.data);
        this.setState({allVersions: res.data});
        console.log(this.allVersions)
    }).catch((err) =>
    {
        console.log(err);
    })
}

在这里,我尝试使用端点获取 JSON 对象,在第一个控制台日志中,它为我提供了正确的数据,但在第二个控制台日志中,它为我提供了 [object Object]。

还,

{console.log("state of all versions: " + this.state.allVersions)}

给我一个 [object Object] 但如果我这样做

{console.log(this.state.allVersions)}

它给我正确的数据?为什么要删除字符串这样做?

标签: mern

解决方案


字符串和对象的连接将使对象转换为字符串,而不是 JSON。相反,您可能希望在连接之前将您的对象转换为 JSON。

在此处输入图像描述

所以在你的代码中它看起来像

console.log("state of all versions: " + JSON.stringify(this.state.allVersions))

推荐阅读