I am fetching data from the server and getting the data successfully as you can see in the screenshot, I also checked my code. my code is working properly when I take data manually, but I don't know why I am getting this error:
TypeError: Cannot read property 'map' of undefined
Orders.js file:
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 file
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;
