javascript - Egenskapen 'shouldComponentUpdate' kan inte tilldelas samma egenskap


Jag fick ett fel i TypeScript när jag använde shouldComponentUpdate:

Egenskapen 'shouldComponentUpdate' i typen 'Hello' kan inte tilldelas samma egenskap i basklassen Component<IProps, any, any>.

i komponent:

import React, { Component } from 'react'

class Hello extends Component<IProps, any> {
  shouldComponentUpdate(nextProps: IProps) { // error here
    console.log(nextProps, 'nextProps')
  }

  ....// some code
}

Kan någon förklara för mig vad jag gör fel?

Svar #1

Det är lite irriterande att använda React med TypeScript, eftersom den senare idag inte innehåller alla nödvändiga tips för felbeskrivning. Så, troligen är ett fel i ditt fall kopplat till ett ofärdigt return-anrop från shouldComponentUpdate-metoden.

Prova nästa och se vad som händer:

  shouldComponentUpdate(nextProps: IProps) { // error here
    console.log(nextProps, 'nextProps')
    return true
  }

Svar #2

Jag tror att detta beror på det faktum att shouldComponentUpdate förväntas returnera ett booleskt värde. Du returnerar void eftersom du inte explicit returnerar något. Standard är att returnera true, så att bara lägga till det som ditt sista uttalande i funktionen löser problemet.

För mer information, se till exempel React-dokumentationen: https://reactjs.org/docs/react-component.html#shouldcomponentupdate.

Relaterade artiklar