Redux mapDispacthToProps - проп не вызывается при вызове из события unload - PullRequest
2 голосов
/ 01 ноября 2019

У меня есть требование вызывать API при возникновении события unload [закрытие браузера / вкладки.] Я хочу указать действие, которое позаботится о вызове API. Однако, похоже, действие не вызывается.

unload(e) {
    if (shouldCallApi()) {
      this.props.submit();
    }
  }
export const handleSubmit = dispatch => () => {
  dispatch(submitApp());
  return true;
};

export const mapDispatchToProps = dispatch => ({
  submit:  handleSubmit(dispatch),
});

Метод handleSubmit вообще не вызывается

1 Ответ

1 голос
/ 01 ноября 2019

Проблема связана с вашей инициализацией submit в mapDispatchToProps.

submit: handleSubmit(dispatch), фактически инициализируют submit с возвращаемым значением handleSubmit , которое не определено, так как я полагаю, это не то, что вы пытаетесь сделать.

Вам необходимоустановите submit с функциональным объектом , чтобы иметь возможность вызывать его как функцию, просто ссылаясь на его имя .

unload(e) {
    if (shouldCallApi()) {
      this.props.submit(dispatch);
    }
  }
export const handleSubmit = dispatch => () => {
  dispatch(submitApp());
  return true;
};

export const mapDispatchToProps = dispatch => ({
  submit: handleSubmit,
});

Это означает, что вы должнывызовите this.props.submit(dispatch); с диспетчеризацией в качестве параметра и, таким образом, получите возможность совместно использовать вашу функцию выгрузки .

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