我正在从服务器获取数据并成功获取数据,正如您在屏幕截图中看到的那样,我还检查了我的代码。当我手动获取数据时,我的代码工作正常,但我不知道为什么会出现这个错误:
TypeError:无法读取未定义的属性'map‘
Orders.js文件:
import React, { Component } from 'react';
import Toolbar from '../../components/Navigation/Toolbar/Toolbar';
import Order from '../../components/Order/Order';
import axios from 'axios';
class Orders extends Component {
constructor(){
super();
this.state={
orders:[]
}
this.componentDidMount=(event) =>{
axios.get('https://reactjs-burger-builder-2607.firebaseio.com/orders.json')
.then(response =>{
console.log(response.data)
let updatedOrders=[];
for(let key in response.data)
{
updatedOrders.push(response.data[key]);
}
this.setState({
orders:[].concat(updatedOrders),
});
})
}
}
render() {
console.log(this.state.orders);
let allOrders='loading..';
if(this.state.orders){
allOrders= <Order orders={this.state.orders}/>
}
return (
<div>
<Toolbar/>
{allOrders}
</div>
);
}
}
export default Orders;
Order.js文件
import React from 'react';
import classes from './Order.css';
const Order =(props) =>{
console.log(props.orders);
return(
<div>
{props.orders.map(order =>
<div className={classes.order} key={Math.random()}>
<span>name: {order.name} </span><br/>
<span>contact: {order.contact} </span><br/>
<span>address: {order.address} </span><br/>
<span>Price: {order.price} Rs </span><br/>
<p><span>ingredients: </span>
{order.ingredients.map(ingredient =>
<span key={Math.random()} className={classes.ingredients}>{ingredient.name} ({ingredient.qty}) </span>
)}
</p>
</div>
)}
</div>
);
}
export default Order;
https://stackoverflow.com/questions/57346627
复制相似问题