如何在 Preact 无状态组件上输入 属性 'key'
How to type property 'key' on Preact stateless component
这是无状态组件:
interface Props {
children: JSX.Element;
title: string;
isHidden: boolean;
}
function TabContent({ children, title, isHidden }: Props): JSX.Element {
return (
<section
id={title}
hidden={isHidden}
>
{children}
</section>
);
}
export default TabContent;
然后我像这样 map
消费它:
createTabContent = tabs => {
return tabs.map((tab, id) => (
<TabContent key={id} title={tab.title} isHidden={!(this.state.activeTab === id)}>
{tab}
</TabContent>
));
};
但是 Typescript 抱怨 Property 'key' does not exist on type Props
。
我研究了如何在 React 中输入无状态组件,例如 guide。它们都需要访问 React
模块,但我使用的是 Preact..
Preact 有类似 React 的组件typings。所以你可以使用 ComponentType
、FunctionComponent
、FunctionalComponent
:
之一
import { FunctionalComponent } from 'preact';
const TabContent: FunctionalComponent<Props> = ({ children, title, isHidden }) => (
<section
id={title}
hidden={isHidden}
>
{children}
</section>
);
这是无状态组件:
interface Props {
children: JSX.Element;
title: string;
isHidden: boolean;
}
function TabContent({ children, title, isHidden }: Props): JSX.Element {
return (
<section
id={title}
hidden={isHidden}
>
{children}
</section>
);
}
export default TabContent;
然后我像这样 map
消费它:
createTabContent = tabs => {
return tabs.map((tab, id) => (
<TabContent key={id} title={tab.title} isHidden={!(this.state.activeTab === id)}>
{tab}
</TabContent>
));
};
但是 Typescript 抱怨 Property 'key' does not exist on type Props
。
我研究了如何在 React 中输入无状态组件,例如 guide。它们都需要访问 React
模块,但我使用的是 Preact..
Preact 有类似 React 的组件typings。所以你可以使用 ComponentType
、FunctionComponent
、FunctionalComponent
:
import { FunctionalComponent } from 'preact';
const TabContent: FunctionalComponent<Props> = ({ children, title, isHidden }) => (
<section
id={title}
hidden={isHidden}
>
{children}
</section>
);