Как передать параметры во вложенной функции в Javascript - PullRequest
0 голосов
/ 03 октября 2019

Наш код в настоящее время имеет функцию, которая вызывает всплывающее сообщение всплывающего сообщения при сохранении объекта в базе данных.

export function addAnimal(animalObject) {
  return function(dispatch) {
    showToastNotification(() => {
      return addAnimal(animalObject);
    }, dispatch);
  };
}


function showToastNotification(handleToastSave, dispatch) {    
  return handleToastSave()
    .then(() => {
      showMessage("this was a success")(dispatch);
    })
    .catch(() => {
      showMessage("Something went wrong!")(dispatch);
    })
    .finally(() => {
      saveMode(false)(dispatch);
    });
}

Мой вопрос заключается в том, что я хочу передать строку message в качестве параметра в showToastNotification, например:

export function addAnimal(animalObject) {
  return function(dispatch) {
    showToastNotification(("successfully added animal") => {
      return addAnimal(animalObject);
    }, dispatch);
  };
}

function showToastNotification(message, handleToastSave, dispatch) {    
  return handleToastSave()
    .then(() => {
      showMessage(message)(dispatch);
    })
    .catch(() => {
      showMessage("Something went wrong!")(dispatch);
    })
    .finally(() => {
      saveMode(false)(dispatch);
    });
}

Это не работает. Я не очень знаком с тем, как работает жирная стрелка в этой функции. Можно ли передать реквизит toToastNotification?

1 Ответ

2 голосов
/ 03 октября 2019

Вы помещаете строку, где будут параметры обратного вызова, а не в качестве первого аргумента фактической функции showToastNotification. Просто переместите его в нужное место:

showToastNotification("successfully added animal", () => {
  return addAnimal(animalObject);
}, dispatch);
...