首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在react.js应用程序中遇到一些axios错误

在react.js应用程序中遇到一些axios错误
EN

Stack Overflow用户
提问于 2018-07-18 04:56:01
回答 4查看 178关注 0票数 0

请告诉我为什么我会从这个应用程序中得到这个错误:

index.js:

代码语言:javascript
复制
const API='http://my-domain.com/api/?format=json'

class App extends React.Component{
	constructor(props){
		super(props);
		this.state={
			data: [],
			isLoading: false,
			error: null,
		};
	}
	
	componentDidMount(){
		this.setState({isLoading: true});
		axios.get(API)
			.then(response => this.setState({data: response.data, isLoading: false}))
			.catch(response => this.setState({error: response.error, isLoading: false}));
	}
	
	render(){
		return (
			<div>
			<p>{this.state.error}</p>
			<p>{this.state.isLoading ? 'Loading...':'Loaded'}</p>
			<ul>{this.state.data.map(obj => <li key={obj.id}>{obj}</li>)}</ul>
			</div>
		)
	}
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

这是这个应用程序应该得到的json:

代码语言:javascript
复制
[{"id":5,"name":"Storey-1","Value":1399511075,"NSt":5},
{"id":6,"name":"Storey-2","Value":1344981250,"NSt":5},
{"id":7,"name":"Storey-3","Value":1363157800,"NSt":5}]

这就是我得到的错误:

对象作为React子级无效(已找到:具有键{id,name,Value,NSt}的对象)。如果您打算呈现一个子级集合,请改用数组。在li (在index.js:29)中,在ul (在index.js:29)中,在div (在index.js:26)中,在App (在index.js:36)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-18 05:01:54

对象作为React子级无效(已找到:具有键{id,name,Value,NSt}的对象)。如果您打算呈现一个子级集合,请改用数组。在li (在index.js:29)中,在ul (在index.js:29)中,在div (在index.js:26)中,在应用程序(在index.js:36)中

这不是axios错误。尝试将原始对象作为React子组件放置时引发的React错误。

错误在这一行中:

代码语言:javascript
复制
 <ul>{this.state.data.map(obj => <li key={obj.id}>{obj}</li>)}</ul>

不要使用整个obj对象,必须使用如下的object字段:

代码语言:javascript
复制
<ul>{this.state.data.map(obj => <li key={obj.id}>{obj.name}</li>)}</ul>
票数 1
EN

Stack Overflow用户

发布于 2018-07-18 05:02:39

您正在通过一个对象数组进行映射,您试图在其中呈现对象本身:

<ul>{this.state.data.map(obj => <li key={obj.id}>{obj}</li>)}</ul>

我假设您希望呈现{obj.name}{obj.Value}

票数 1
EN

Stack Overflow用户

发布于 2018-07-18 05:01:12

我认为错误信息非常清楚。你正试图在对象上渲染,而React不喜欢这样:

代码语言:javascript
复制
<ul>{this.state.data.map(obj => <li key={obj.id}>{obj}</li>)}</ul>

作为下一步,您可能想要字符串,然后挑选出您想要呈现的属性。然后,您可以看到响应数据是什么,并决定如何呈现。

代码语言:javascript
复制
<ul>{this.state.data.map(obj => <li key={obj.id}>{JSON.stringify(obj)}</li>)}</ul>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51390061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档