Как избежать предупреждений типа потока для 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)