Как избежать предупреждений типа потока для React componentDidUpdate?

Мой метод componentDidUpdate выдает следующую ошибку:

Несовместимое переопределение, должно иметь подпись: '(prevProps: ReadOnly

, prevState: ReadOnly, _prevContext: any): void

Я попытался сделать это тип возвращаемого значения, но затем я столкнулся с ошибками:

  • ReadOnly, P, S: не удалось разрешить имя
  • preContext: несовместимое переопределение, должно иметь тип 'any'

Код:

class EditableCell<ID_TYPE> extends React.Component<Props<ID_TYPE>, State> {
    componentDidUpdate(prevProps: ReadOnly<P>, prevState: ReadOnly<S>, _prevContext: any): void {...}

    ... }

2 ответа

If you're using Webstorm, go to Settings -> Editor -> Inspections and turn off 'Signature mismatch' checkbox.

Использование $ReadOnly специальный тип потока: https://flow.org/en/docs/types/utilities/

componentDidUpdate ожидает, что компонент поддерживает в качестве первого аргумента, а состояние компонента - в качестве второго аргумента. Поэтому типы должны быть установлены соответственно.

По-моему, конечный результат должен быть таким:

componentDidUpdate(prevProps: Props<ID_TYPE>, prevState: State, _prevContext: any)

Другие вопросы по тегам