html 类型'IntrinsicAttributes & Props'上不存在属性'...'

5jvtdoz2  于 2022-12-09  发布在  其他
关注(0)|答案(1)|浏览(354)

我的应用程序中有一个<InputField>组件,其属性类型定义如下:

interface InputFieldProps extends React.HTMLAttributes<HTMLInputElement> {
  customProp: string;
}

我的组件如下所示:

const InputField: React.FC<InputFieldProps> = ({ customProp, ...htmlProps }) => {

  return (
    <input {...htmlProps} />
  );
};

我希望现在可以将prop disabledrequired传递给该组件,因为这些属性是HTMLInputElement类型定义的一部分。
类型'IntrinsicAttributes & Props'上不存在属性'disabled'
我尝试将disabled作为disabled={true}传递,也尝试只传递disabled,但都没有成功。不过,我可以将placeholder作为prop传递。因此HTMLInputElement类型定义中的一些属性似乎可以工作,而其他属性则不行。

new9mtju

new9mtju1#

使用React.InputHTMLAttributes<HTMLInputElement>并确保每个附加属性(如customProp)都不会到达您的input。在下面的示例中,由于customProp是自己析构的,因此htmlProps将只包含input属性。

interface InputFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {
  customProp: string;
}

const InputField: React.FC<InputFieldProps> = ({
  customProp,
  ...htmlProps
}) => {
  return <input {...htmlProps} />;
};

相关问题