如何在 React JS Axios 中将请求有效负载作为可选的 api 调用发送

How to send request payload as optional to the api call in React JS Axios

我正在尝试调用 API 在 React JS 中使用 Axios。有时我会有产品 ID,有时我没有产品 ID。目前,由于产品 ID,我正在复制代码。

This is API which is in common.js

fetchProducts: (payload) => put(`/products`, payload),

products.js

      if (productID) {
                        common.fetchProducts({
                            selectedItems: checkedItems,
                            productID: productID,
                        })
                            .then((resp) => {
                                console.log("Success",resp);
                            })
                            .catch((err) => {
                                   console.log("Failure",err);
                            });
                    } else {
                        common.fetchProducts({
                            selectedItems: checkedItems,
                        })
                            .then((resp) => {
                                console.log("Success",resp);
                            })
                            .catch((err) => {
                                   console.log("Failure",err);
                            });
                    }

和 products.js 组件由于这个可选参数,我有更多的 API 调用,我重复了很多代码。如何简化这个 API 调用?

您可以使用 conditional operator 来减少您的代码:

common.fetchProducts(
  productID
    ? {
        selectedItems: checkedItems,
        productID: productID,
      }
    : { selectedItems: checkedItems }
);