首页 > 解决方案 > 无法将参数传递给函数

问题描述

我试图将状态中的值作为参数传递给 Function.addAddOnData,调用 setaddOndatatypes 函数并将“addOnCategory”作为参数,在执行 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';
    }
  };

标签: javascriptfunctionparameters

解决方案


您在addAddOnDataToDb调用端的参数顺序错误。

您定义了如下功能:

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

你的电话看起来像:

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

state.addOnCategory应该作为函数调用的最后一个参数传递。此外,价格和图标 url 的顺序也有误。

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

推荐阅读