I am not sure how to iterate through each order and show them as individual orders. The api response looks like this…
0:
Crust: “THIN”
Flavor: “CHEESE”
Order_ID: 2
Size: “S”
Table_No: 5
Timestamp: “2019-12-03T18:21:08.708470”
And can go on to have as many orders as possible. I do not need the Order_ID showing so maybe that is a way to iterate through?
import React, { Component } from 'react' import axios from 'axios'; export default class Orders extends Component { constructor() { super(); this.state = { order: "no orders yet", crust: "no crust selected", // flavor: "no flavor selected", // size: "no size selected", // table: "place an order first", // timestamp: "place an order first" }; } handleButtonClick = () => { axios.get("/orders").then(response => { this.setState({ orders: response, crust: response.data[0].Crust // flavor: response.data[0].Flavor //etc.. }); }) } render() { return( <div> <button onClick={this.handleButtonClick}></button> <h1>orders are:</h1> <p>Crust: {this.state.crust}</p> </div> ); } } export { Orders }
Advertisement
Answer
From what I could figure out from your codeblock, this should work. Just set the orders array to the response.data and then iterate over the orders array in your render function.
constructor() { super(); this.state = { orders: [] }; } handleButtonClick = () => { axios.get("/orders").then(response => { this.setState({ orders: response.data }); }) } render() { const orderData = this.state.orders.map(order => { return }) return( <div> <button onClick={this.handleButtonClick}></button> <h1>orders are:</h1> {this.state.orders.map((order) => ( <p>Flavor: {order.flavor}</p> <p>Crust: {order.crust}</p> ))} </div> ); }