React 16.7 - React.SFC 现已弃用

React 16.7 - React.SFC is now deprecated

我曾经像这样声明无状态组件:

const example: React.SFC<IExample> = ({propsType}) => ();

然而,SFC 现在已被弃用,也许 this twitter post from Dan Abramov 解释了原因。

SFC 被弃用后我们应该使用什么?

你应该使用 React.FunctionComponent: Rename React's SFC to 'FunctionalComponent

This PR renames React.SFC and React.StatelessComponent to React.FunctionComponent, while introducing deprecated aliases for the old names.

因此您的示例将变为:

const example: React.FunctionComponent<IExample> = ({propsType}) => ();

const example: React.FC<IExample> = ({propsType}) => ();

我会说已接受的答案不再是最新的。

React.FunctionComponent 有一定的缺点,as explained by the folks at create-react-app。他们的推理很有说服力,我完全停止使用FC

更好的选择:

const example = ({ propsType }: IExample): JSX.Element => ();