[英]Property 'children' does not exist on type '{}'
I'm guessing this new app is on React 18.我猜这个新应用程序是基于 React 18 的。
React 18 removed children
from the FC
type. React 18 从
FC
类型中移除了children
。 If you want it back you need to add it to the props yourself.如果你想要它回来,你需要自己将它添加到道具中。
const Foo: React.FC<{ children: React.ReactNode }> = ({ children }) => <>{children}</>
Or preferably, don't use the FC
type at all:或者最好根本不使用
FC
类型:
interface Props {
children: React.ReactNode
}
function Foo({ children }: Props) {
return<>{children}</>
}
You have not defined a type for React.FC
您还没有为
React.FC
定义类型
The fix could be修复可能是
type Props = {
children: React.ReactNode
}
const Page: React.FC<Props> = ({ children }) => {
...
}
As mentioned by others, React 18 removed children
from the props type definition.正如其他人所提到的,React 18 从 props 类型定义中删除了
children
。
You can do the following instead, by explicitly declaring your props should include children:您可以通过明确声明您的道具应包括孩子来执行以下操作:
import { FunctionComponent, PropsWithChildren } from 'react';
export const MyComponent: FunctionComponent<PropsWithChildren> =
({ children }) => <div>{children}</div>;
The above would default the props to the unknown
type.以上将道具默认为
unknown
类型。
You can also define the props:您还可以定义道具:
import { FunctionComponent, PropsWithChildren } from 'react';
interface Props {
label: string;
}
export const MyComponent: FunctionComponent<PropsWithChildren<Props>> =
({ label, children }) => <div>{label}: {children}</div>;
Or even better:或者更好:
import { FunctionComponent, PropsWithChildren } from 'react';
interface Props extends PropsWithChildren {
label: string;
}
export const MyComponent: FunctionComponent<Props> =
({ label, children }) => <div>{label}: {children}</div>;
You need to replace the destructured props argument by following您需要通过以下方式替换 destructured props 参数
{ children }: {children: React.ReactNode}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.