Как вызвать запрос API для каждого ключа объекта JSON отдельно в REACT JS by loop? - PullRequest
0 голосов
/ 04 мая 2019

У меня JSON Object данные хранятся в состоянии mycart в следующем формате: (это данные продуктов, сгруппированных по их CompanyNames )

{
        "Master Automotives": [
            {
                "SparePartID": "43",
                "Name": "Oil and Lubricants",
                "Price": "4500",
                "VendorID": "48",
                "CompanyName": "Master Automotives",
                 "Qty": 1,
                 "TotalPrice": "4500"

            },
            {
                "SparePartID": "45",
                "Name": "Lights",
                "Price": "2300",
                "VendorID": "48",
                "CompanyName": "Master Automotives",
                 "Qty": 1,
                 "TotalPrice": "2300"
            }
        ],

        "Repair Solutions": [
            {
                "SparePartID": "47",
                "Name": "Steering Wheel",
                "Price": "1500",
                "VendorID": "60",
                "CompanyName": "Repair Solutions",
                 "Qty": 1,
                 "TotalPrice": "1500"
            }
        ],
        

         "FiveStar Automotives": [
            {
                "SparePartID": "51",
                "Name": "Brakes",
                "Price": "234",
                "VendorID": "70",
                "CompanyName": "FiveStar Automotives",
                 "Qty": 1,
                 "TotalPrice": "234"
            },
            {
                "SparePartID": "53",
                "Name": "Clutch",
                "Price": "999",
                "VendorID": "70",
                "CompanyName": "FiveStar Automotives",
                 "Qty": 1,
                 "TotalPrice": "999"
            },
              {
                "SparePartID": "55",
                "Name": "LED",
                "Price": "288",
                "VendorID": "70",
                "CompanyName": "FiveStar Automotives",
                 "Qty": 1,
                 "TotalPrice": "288"
            }
        ]
    
}

Теперь я хочу разместить отдельные заказы для каждой компании.Например, если у компании A: "Master Automotives" есть 2 продукта, я хочу позвонить в API, чтобы разместить заказ отдельно

, а затем снова вызвать API для компании B: "Repair Soltions" , в котором есть 1 товар и оформить заказ.И так далее для всех компаний, которые присутствуют в объекте JSON mycart.

Я хочу перебрать объект mycart в соответствии с названиями компаний и API-интерфейсами вызовов отдельно для каждой компании в одной и той же функции.(Этот объект mycart может иметь несколько компаний. Динамический.)

Так будет выглядеть вызов My API. Я просто не знаю, как перебрать мой объект JSON в этой функции:

placeOrder()
{
      const orderData = {
      CustomerID: this.state.customer.CustomerID,
      TotalPrice: this.state.totalPrice } 
      //TotalPrice is each Company's items' total

    //nested API call
    axios.post('http://localhost/Auth/api/customers/create_order.php', orderData)
      .then((res) => {
      console.log(res.data);
      this.setState({orderID: res.data.oid});
   
      const cartOrder = this.state.mycart;
      alert("Congratulations! Your Order is Confirmed");
      return axios.post('http://localhost/Auth/api/customers/insert_order_details.php', cartOrder)
      .then((result) => {
          alert("Your all order items added to order details table");
      });
  });

}

1 Ответ

0 голосов
/ 04 мая 2019
var requestObj = {
    company1: [{
        name: "Prod1",
        qty: "12"
    }, {
        name: "Prod2",
        qty: "10"
    }],
    company2: [{
        name: "Prod3",
        qty: "11"
    }, {
        name: "Prod4",
        qty: "13"
    }],
    company3: [{
        name: "Prod5",
        qty: "1"
    }, {
        name: "Prod6",
        qty: "2"
    }, {
        name: "Prod7",
        qty: "3"
    }]
}

for(let companyName in requestObj){
    let orderData = requestObj[companyName];
    placeOrder(orderData);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...