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 => ();
我曾经像这样声明无状态组件:
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
andReact.StatelessComponent
toReact.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 => ();