Я использую react-bootstrap@1.0.0-beta.14
, и я пытаюсь создать пользовательский Button
компонент с помощьюact-bootstraps Button
, добавив еще одну опору isLoading
. Из-за способа определения типов реагирования bootstrap я импортировал некоторые типы помощников и скопировал часть типов реагирования bootstrap:
import React from 'react'
import { Button as Btn, ButtonProps } from 'react-bootstrap'
import { BsPrefixProps, ReplaceProps } from 'react-bootstrap/helpers'
interface Props {
isLoading?: boolean
}
type BtnProps<As extends React.ElementType = 'button'> = ReplaceProps<
As,
BsPrefixProps<As> & ButtonProps
>
export const Button: React.FC<BtnProps & Props> = ({ isLoading, disabled, ...props }) => {
return <Btn {...props} disabled={isLoading || disabled} />
}
Это почти работает. Ошибка, которую я получил, говорит мне, что ref
неправильные типы реквизитов:
Типы свойств 'ref' несовместимы.
...
Тип '(instance: HTMLButtonElement | null) => void' нельзя назначить типу (instance: Button> | null) => void '.
Я удалил большую часть сообщения об ошибке, чтобы получить соответствующий бит. Нужно ли оборачивать компонент в forwardRef для этой работы?