Получить модель из cuid в Redux Actions - PullRequest
0 голосов
/ 18 октября 2018

У меня есть файл действий Redux: contribActions

Моя функция:

  export function acceptContribution(contributionCuid) {
  return dispatch => {
    const {
      //How can I construct contribution from  contributionCuid
      contriution: { activity } } = contributionCuid;
    dispatch(actionStart(CONTRIBUTIONS_TO_VALIDATE_REMOVE));
    Mixpanel.track('acceptContribution2', {
      'Mission': contribution.activity.name,
      'Charity': contribution.activity.charity.name,
    });
    return callApi(`contributions/${contributionCuid}/accept`, 'post')
      .then(() => dispatch(removeContributionToValidateAction(contributionCuid)))
      .catch(err => dispatch(actionError(CONTRIBUTIONS_TO_VALIDATE_REMOVE, err)));
  };
}

Теперь я хочу отправить информацию об этом вкладе в Mixpanel.Поэтому мне нужно восстановить вклад, чтобы я мог получить всю необходимую мне стоимость.Это возможно?

1 Ответ

0 голосов
/ 18 октября 2018

Возможно, вам не следует деконструировать вклад, который вы получаете от параметра.

Я изменил ваш код:

export function acceptContribution(contributionCuid) {
  return dispatch => {
    // do not deconstruct the contribution object, so we keep a reference to it -- is it really needed?
    const { contribution } = contributionCuid;
    // you get the activity here
    const { activity } = contribution;

    dispatch(actionStart(CONTRIBUTIONS_TO_VALIDATE_REMOVE));
    Mixpanel.track('acceptContribution2', {
      'Mission': activity.name,
      'Charity': activity.charity.name,
    });
    return callApi(`contributions/${contributionCuid}/accept`, 'post')
      .then(() => dispatch(removeContributionToValidateAction(contributionCuid)))
      .catch(err => dispatch(actionError(CONTRIBUTIONS_TO_VALIDATE_REMOVE, err)));
  };
}

Вы действительно хотите назвать это Mixpanel функционировать изнутри ваших действий редуктора?Мне нравится, когда мои редукторы занимаются исключительно этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...