内容来源于 Stack Overflow,遵循 CC BY-SA 4.0 许可协议进行翻译与使用。IT领域专用引擎提供翻译支持
腾讯云小微IT领域专用引擎提供翻译支持
我有打字错误。它说‘子“不存在于'{}’类型上,即使这个语法在我的其他项目上有效。
您还没有为 React.FC 定义类型
React.FC
解决办法可能是
type Props = { children: React.ReactNode const Page: React.FC<Props> = ({ children }) => { }
您需要通过以下方式替换非结构化道具参数
{ children }: {children: React.ReactNode}
我猜这款新的应用程序已经启动了18。
将18 children 从 FC 类型中删除。如果你想要拿回它,你需要自己把它添加到道具中。
children
FC
const Foo: React.FC<{ children: React.ReactNode }> = ({ children }) => <>{children}</>
或者最好不要使用 FC 类型:
interface Props { children: React.ReactNode function Foo({ children }: Props) { return<>{children}</> }
正如其他人所提到的,React 18从道具类型定义中删除了 children 。
您可以通过显式声明您的道具应该包括子元素来执行以下操作:
import { FunctionComponent, PropsWithChildren } from 'react'; export const MyComponent: FunctionComponent<PropsWithChildren> = ({ children }) => <div>{children}</div>;
以上将默认为 unknown 类型的支持。
unknown
您还可以定义道具:
import { FunctionComponent, PropsWithChildren } from 'react'; interface Props { label: string; export const MyComponent: FunctionComponent<PropsWithChildren<Props>> = ({ label, children }) => <div>{label}: {children}</div>;
甚至更好:
import { FunctionComponent, PropsWithChildren } from 'react';