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

问题描述

我正在尝试在 React JS 中使用 Axios 调用 API。有时我会有一个产品 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,err);
                            });
                    }

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

解决方法

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

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