React 16.7 - React.SFC 现在已弃用

IT技术 reactjs typescript deprecated deprecation-warning
2021-05-07 10:59:15

我用来声明无状态组件是这样的:

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

然而,证监会现在已被弃用,也许Dan Abramov 的这篇twitter帖子解释了原因。

现在 SFC 已被弃用,我们应该使用什么?

2个回答

您应该使用React.FunctionComponent将 React 的 SFC 重命名为“FunctionalComponent”

此 PR 将React.SFC重命名React.StatelessComponentReact.FunctionComponent,同时为旧名称引入已弃用的别名。

所以你的例子会变成:

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

或者

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

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

React.FunctionComponent有一些缺点,正如 create-react-app 的人所解释的那样他们的推理很有说服力,我FC完全停止使用

更好的选择:

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