reactjs - TypeScript-feil: Typen '() => boolean' kan ikke tildeles typen 'boolean'


Hvis arrayen user_list.length == 0, bør knappen "fjern bruker" være deaktivert. Når jeg kaller this.disabledButton-funksjonen, kaster den en feil som sier

Type '() => boolean' kan ikke tilordnes til type 'boolean'

Nedenfor er min logikk.

<section>
     <Button
        id='clear-user'
        disabled={this.disabledButton}
        onClick={this.onClearAllUserButton}>
        {'Clear User List'}
     </Button>
</section>

Funksjon definert:

 private disabledButton= (): boolean => {
    if (this.props.user_list.length == 0) {
      return true
    }
    return false
  }

Er mitt kall feil?

Svar #1

Du sender en funksjon som returnerer en boolean (type () => boolean) til en egenskap som forventer en boolean (type boolean). Du må bare faktisk kjøre funksjonen din.

disabled={this.disabledButton()}

Denne feilmeldingen forteller deg alt:

"Type '() => boolean' is not assignable to type 'boolean'"

() => boolean er funksjonen du prøver å tilordne, og boolean er typen den forventer. Det er opp til deg å legge merke til hva de to typene er og finne ut hvordan du kan få dem til å samsvare.

Relaterte artikler