在React中,似乎我可以声明一个功能组件,或者只是一个函数返回一个JSX元素。 令我感到困惑的是,我不知道这两种方法之间的主要区别。 只有一种方法可以做而另一种方法不能做的事吗?
import React from "react";
type ItemProps = {
id: number
name: string
}
const Item: React.FC<ItemProps> = ({ id, name }) =>
(
<section>
my id is {id}
my name is {name}
</section>
)
const item = ({ id, name }: ItemProps) =>
(
<section>
my id is {id}
my name is {name}
</section>
)
export const Container = () =>
(
<section>
{item({ id: 1, name: "item-1" })}
<Item id={1} name={"item-1"} />
</section>
)
答案 0 :(得分:1)
React.FC
提供类型检查支持
您还可以使用React.FunctionComponent(或简写的React.FC-它们相同)编写组件:
const App: React.FunctionComponent<{ message: string }> = ({ message }) => (
<div>{message}</div>
);
与“正常功能”版本有所不同:
查看文档以获取更多信息
https://github.com/typescript-cheatsheets/react/blob/main/README.md#section-2-getting-started
答案 1 :(得分:0)
这两种方法之间的差异已记录here.
提供类型检查和自动完成功能,
答案 2 :(得分:0)
在React中,函数的返回是JSX.Element。甚至React.FC中的声明返回也必须是JSX.Element
如果您有隐式回报
const Component: React.FC = () => {}
如果您有明确的回报
const Component = (): JSX.Element => {}