在自定义组件中键入和使用className
属性的正确方法是什么?我以前可以这样做:
class MyComponent extends React.Component<MyProps, {}> {
...
}
然后通过以下方式使用我的组件:
<MyComponent className="my-class" />
请注意,我不会在MyProps
中定义className
,尽管React之前就支持这种用法。
现在,我看到这个类型错误:
Property 'className' does not exist on type 'IntrinsicAttributes &
IntrinsicClassAttributes<Component<{}, ComponentState>> & Readonly<{
childr...'
什么是正确的方式来定义/类型我的组件,将允许我在使用我的组件时使用className
?
4条答案
按热度按时间bvjxkvbb1#
您可以使用
HTMLAttributes
类型,例如:这样,您就可以传递html元素可能需要的任何属性。
如果你只需要
className
属性,那么你可以这样做:或者简单地将其添加到
MyProps
类型中。a7qyws3x2#
对于那些正在寻找功能组件解决方案的人来说,就像我一样。
或者,如果您想单独声明接口:
你可以把界面移到另一个文件
inkz8wg93#
添加
react-native-class-name.polyfill.d.ts
kmb7vmvb4#
我自己总是使用
HTMLProps
类型,通过如下方式获取className
:它还可以很好地使用
TailwindCSS
类名自动完成功能。