无法将参数传递给功能

时间:2020-07-06 08:16:26

标签: javascript function parameters

我正在尝试将状态值作为参数传递给Function.addAddOnData,以“ addOnCategory”为参数调用setaddOndatatypes函数,在执行console.log时不会传递参数,显示为空白响应。

第一个函数调用:

  const onSubmit = e => {
    e.preventDefault();
    fileUpload(fileInputRef);
    if (!state.loading) {
      addAddOnDataToDb(
        state.addOnCategory,
        state.itemName,
        state.itemPrice,
        state.itemIconURL
      );
    }
  };

功能:

const addAddOnDataToDb = (
    itemName,
    itemIconURL,
    itemPrice,
    addOnCategory
  ) => {
    console.log(addOnCategory);

    const addOnType = setAddOnItemType(addOnCategory);
    console.log(addOnType);
    const addOnBody = JSON.stringify({
      itemName,
      itemIconURL,
      itemPrice,
      addOnType
    });
    console.log(addOnBody);
    const config = {
      headers: {
        'Content-Type': 'application/JSON'
      }
    };
    axios.post('/api/v1/addOn', addOnBody, config);
  };

调用setAddOnItemType

  const setAddOnItemType = addOnCategory => {
    console.log(addOnCategory);
    switch (addOnCategory) {
      case 'Add on':
        return 'addOn';
      case 'Flavours':
        return 'flavour';
    }
  };

1 个答案:

答案 0 :(得分:1)

addAddOnDataToDb调用方,参数的顺序错误。

您定义的功能如下:

const addAddOnDataToDb = (
    itemName,
    itemIconURL,
    itemPrice,
    addOnCategory
  ) => {
    ....
  }

您的通话如下:

addAddOnDataToDb(
    state.addOnCategory,
    state.itemName,
    state.itemPrice,
    state.itemIconURL
  );

state.addOnCategory应该作为函数调用的最后一个参数传递。价格和图标网址的顺序也不正确。

addAddOnDataToDb(
    state.itemName,
    state.itemIconURL,
    state.itemPrice,
    state.addOnCategory,
  );