как передать параметры функции onClick? (Ошибка: 'void' не присваивается типу) - PullRequest
0 голосов
/ 07 августа 2020

Сообщение об ошибке:

Тип 'void' не может быть назначен типу '((событие: MouseEvent ) => пусто) | undefined'.ts (2322) index.d.ts (1443, 9): ожидаемый тип происходит из свойства onClick, которое здесь объявлено в типе DetailHTMLProps. '

Вопрос: Почему я вынужден использовать mouseEvent для onClick? И как передать параметры функции onClick?

groups.map((group) => {
  group.fields.map((field) => {
   ...
    <button
       ///****ERROR MESSAGE HERE****///
       onClick={this.handleClickOption(group.index, 'g', field.label)}
       type="button"
       className={styles.emptyButton}
    >

Вот мой вызов handleClickOption

  handleClickOption(connectorName: string, stepIndex: string | number, label: string): void {
    const { onChange } = this.props;
    onChange(`${connectorName}.${stepIndex}.${label})]`);
  }

1 Ответ

1 голос
/ 07 августа 2020

Вы не должны сразу вызывать handleClickOption() fun c. Вместо этого вы можете передать анонимную функцию.

groups.map((group) => {
  group.fields.map((field) => {
   ...
    <button
       ///****ERROR MESSAGE HERE****///
       onClick={() => this.handleClickOption(group.index, 'g', field.label)}
       type="button"
       className={styles.emptyButton}
    >

И есть проблема с подписью handleClickOption(). Возможно, вам потребуется удалить возвращаемый тип void.

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