Gen*_*ena 20 typescript reactjs
在 TypeScript 中描述 React 组件类型的正确方法是什么?假设我们有一个返回反应组件的函数。功能:
const getTabContent: () => ReactElement = () => {
switch (tab) {
case 1:
return <Images images={images} onSelect={onSelect}/>;
default:
return <Search onSelect={onSelect}/>;
}
};
Run Code Online (Sandbox Code Playgroud)
在这里,我将返回类型描述为ReactElement,但我想知道它是否正确,或者我应该将其描述为ReactComponentElement还是以某种方式完全不同?此外,这两种类型都是泛型,如果其中一种是正确的,如何完全描述它们?
UPD ReactElement 似乎适合这里,因为,例如,FC (FunctionComponent) 返回它
3Do*_*Dos 21
功能组件的正确类型是React.FunctionComponent或React.FC哪个是它的快捷方式别名
import React, { FC } from 'react';
const getTabContent: FC = () => {
switch (tab) {
case 1:
return <Images images={images} onSelect={onSelect}/>;
default:
return <Search onSelect={onSelect}/>;
}
};
Run Code Online (Sandbox Code Playgroud)
该FC类型只是将children属性添加到props功能组件的参数中,以便您可以访问它:
const SomeComponent: FC = ({ children }) => (
<div className="hello">{children}</div>
);
Run Code Online (Sandbox Code Playgroud)
FC 是一种通用类型,因此您可以向组件“添加”道具:
interface SomeComponentProps {
foo: string;
}
const SomeComponent: FC<SomeComponentProps> = ({ children, foo }) => (
<div className={`Hello ${foo}`}>{children}</div>
);
Run Code Online (Sandbox Code Playgroud)
igo*_*igo 13
考虑 React 中的这个内置定义:
type PropsWithChildren<P> = P & {
children?: React.ReactNode;
}
Run Code Online (Sandbox Code Playgroud)
我在用React.ReactNode。它被定义为
type ReactNode = ReactChild | ReactFragment | ReactPortal | boolean | null | undefined;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26987 次 |
| 最近记录: |