我过去通常这样声明无状态组件:
const example: React.SFC<IExample> = ({propsType}) => ();
尽管如此,SFC现在已经被弃用了。也许来自Dan Abramov的这条Twitter帖子可以解释原因。
既然SFC已经被弃用,我们现在应该使用什么呢?
我过去通常这样声明无状态组件:
const example: React.SFC<IExample> = ({propsType}) => ();
尽管如此,SFC现在已经被弃用了。也许来自Dan Abramov的这条Twitter帖子可以解释原因。
既然SFC已经被弃用,我们现在应该使用什么呢?
你应该使用 React.FunctionComponent
: 将 React 的 SFC 改名为 'FunctionalComponent'
这个 PR 将
React.SFC
和React.StatelessComponent
重命名为React.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 => ();
SFC
已经被弃用了,但是StatelessComponent
没有。不过正如@Doğancan Arabacı所说,应该使用FunctionComponent
。 - Dan