json - 由于不同的神秘物体而反应错误
问题描述
我正在尝试渲染一些 JSON,并且我得到的错误引用了我的 JSON 结构中不存在的一些字段。这些字段正在正确记录到控制台。
这是指哪个对象,我该如何解决?
错误:对象作为 React 子级无效(发现:对象与键 {_events、_eventsCount、_maxListeners、uri、回调、可读、可写、_qs、_auth、_oauth、_multipart、_redirect、_tunnel、headers、setHeader、hasHeader、getHeader , removeHeader, method, localAddress, pool, dests, __isRequestRequest, _callback, proxy, tunnel, setHost, originalCookieHeader, _disableCookies, _jar, port, host, path, httpModule, agentClass, agent})。如果您打算渲染一组子项,请改用数组。
帖子列表:
class PostList extends React.Component {
render() {
return (
request('http://194.5.192.153:3044/api/posts/', function (error,response,body) {
let items = JSON.parse(body).items;
for(let i=0; i<items.length; i++) {
console.log(items[i].author,items[i].desc,items[i].updatedAt,items[i].title);
return (
<Post author={items[i].author} desc={items[i].desc} image={items[i].image} title={items[i].title} createdAt={items[i].createdAt} updatedAt={items[i].updatedAt} />
);
}
})
)
}
}
邮政:
const Post = (props) => {
return (
<>
<img src={props.image} alt="" />
<h1>{props.title}</h1>
<h2>by {props.author}</h2>
<div>Created at {props.createdAt}</div>
<div>Updated at {props.updatedAt}</div>
<div>{props.desc}</div>
</>
);
}
export default Post;
解决方案
在您的代码中,您实际上是在尝试从 呈现返回值request
,这肯定不是您想要的。由于request
是异步的,这里的一般模式是在回调中设置状态,然后在渲染方法中映射该状态。
class PostList extends React.Component {
state = { items: [] };
componentDidMount() {
request(
"http://194.5.192.153:3044/api/posts/",
(error, response, body) => {
const items = JSON.parse(body).items;
this.setState({ items });
}
);
}
render() {
return this.state.items.map((item) => (
<Post
key={item.title}
author={item.author}
desc={item.desc}
image={item.image}
title={item.title}
createdAt={item.createdAt}
updatedAt={item.updatedAt}
/>
));
}
}
推荐阅读
- c - 更多 C 指针问题
- sql - 如何查询字段不在数据库中的位置
- database-migration - 负载平衡的 Cloud Foundry 部署上的数据库迁移
- c - 必要的 C 编译器标志来检查 MacOS(旧的和新的)是否符合 IEEE-754
- r - 将文件从 R 导出到 CSV 的代码问题
- amazon-web-services - 我可以下载 AWS Volume 的快照并安装在我的本地机器上并从中启动吗?
- pdf - 从 blob 列中的存档数据库中检索单词、pdf
- python - 图片上传失败并出现 MultiValueDictKeyError :DJANGO
- excel - ErrorHandler 不工作 -> 编译错误/找不到对象
- python - 谷歌 http 请求被阻止