reactjs - React 不包含 HTMLButtonElement 类型的 'disabled' 属性

标签 reactjs typescript

我有一个组件定义如下:

function ConfirmableButton(props: { onConfirm: () => void; } & HTMLAttributes<HTMLButtonElement>)

但是当使用它时 <ConfirmableButton disabled={disabledRows.includes(id)} /> ,它给了我错误 Property 'disabled' does not exist on type 'IntrinsicAttributes & { onConfirm: () => void; } & HTMLAttributes<HTMLButtonElement>'

我应该使用什么来确保输入正确?

最佳答案

HTMLAttributes<T> 上的泛型类型只是真正为它的事件处理程序提供特定的元素类型。检查类型,THTMLAttributes仅在其扩展 DOMAttributes<T> 的地方被引用,它被传递给每个事件处理程序以键入事件对象的目标属性。

获取<button> -特定属性,您需要使用React的ButtonHTMLAttributes<HTMLButtonElement> (这是 React 用于按钮元素的类型):

interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {
    autoFocus?: boolean | undefined;
    disabled?: boolean | undefined;
    form?: string | undefined;
    formAction?: string | undefined;
    formEncType?: string | undefined;
    formMethod?: string | undefined;
    formNoValidate?: boolean | undefined;
    formTarget?: string | undefined;
    name?: string | undefined;
    type?: 'submit' | 'reset' | 'button' | undefined;
    value?: string | ReadonlyArray<string> | number | undefined;
}

关于reactjs - React 不包含 HTMLButtonElement 类型的 'disabled' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75959908/

相关文章:

javascript - Mysql Like 带有对象数组的javascript 语句?

javascript - 调用组件时定义变量

typescript - "Type-only Field Declarations"有什么实际用途?

javascript - JSON 到达对象的列表元素

javascript - 如何禁用手机上出现的键盘 : React date time picker

javascript - 如何使用map迭代dict并将其转换为react js中的表记录?

reactjs - 如何在 React 中使用在 Google Cloud Run Dashboard 上声明的 ENV 变量

javascript - 如何使用 ForwardRefRenderFunction 导出 forwardRef

typescript - TypeScript Compiler API 可以解析表达式的值吗?

javascript - 无法读取属性对象 reactJS