对象作为React子对象无效(找到:[object Promise])
我正在尝试通过数组映射来呈现帖子列表。我已经做过很多次了,但有一些
renderPosts = async () => { try {
let res = await axios.get('/posts');
let posts = res.data;
return posts.map((post, i) => {
return (
<li key={i} className="list-group-item">{post.text}</li>
);
});
} catch (err) {
console.log(err);
}
}
render () {
return (
<div>
<ul className="list-group list-group-flush">
{this.renderPosts()}
</ul>
</div>
);
}
我得到的是:
未捕获的错误:对象作为React子对象无效(找到:[object Promise])。如果要渲染子级集合,请改用数组。
我检查了renderPosts返回的数据,它是一个具有正确值且没有承诺的数组。这里发生了什么?
回答:
this.renderPosts()
将返回Promise
非实际数据,并且AFAIK Reactjs将不会在中隐式解析Promises
render
。
你需要这样
componentDidMount() { this.renderPosts();
}
renderPosts = async() => {
try {
let res = await axios.get('/posts');
let posts = res.data;
// this will re render the view with new data
this.setState({
Posts: posts.map((post, i) => (
<li key={i} className="list-group-item">{post.text}</li>
))
});
} catch (err) {
console.log(err);
}
}
render() {
return (
<div>
<ul className="list-group list-group-flush">
{this.state.Posts}
</ul>
</div>
);
}
以上是 对象作为React子对象无效(找到:[object Promise]) 的全部内容, 来源链接: utcz.com/qa/429248.html