NextJS Typescript 布局抱怨缺少道具
NextJS Typescript Layout complaining about missing props
按照 https://nextjs.org/docs/basic-features/layouts#with-typescript 指南修改了我要在其中使用布局的 Home
页面,以及 _app.tsx
。
该指南没有显示 Layout.tsx
应该是什么样子,目前错误为:
Type '{ children: ReactElement<any, string |
JSXElementConstructor>; }' is not assignable to type
'IntrinsicAttributes & ReactNode'. Type '{ children:
ReactElement<any, string | JSXElementConstructor>; }' is missing
the following properties from type 'ReactPortal': key, type,
props ts(2322)
我是 TS 的新手,我不确定如何将页面传递给 Layout。
错误消息可能非常混乱。
首先,要将组件 page
传递到 Layout 组件中,您需要在 <Layout>
标签内添加一个属性,其中包含 prop 的名称,在本例中为“children”,如下所示:<Layout children={page}><Layout/>
。查看此来源以获取更多信息:https://reactjs.org/docs/components-and-props.html
另外,功能组件只接受一个“prop”对象作为函数的参数,它是一个包含其他属性的对象。查看此页面 https://fettblog.eu/typescript-react/components/ 了解更多信息。
基本上你需要将函数定义重写为:
export default function Layout (props : { children : string }) { ...
按照 https://nextjs.org/docs/basic-features/layouts#with-typescript 指南修改了我要在其中使用布局的 Home
页面,以及 _app.tsx
。
该指南没有显示 Layout.tsx
应该是什么样子,目前错误为:
Type '{ children: ReactElement<any, string | JSXElementConstructor>; }' is not assignable to type 'IntrinsicAttributes & ReactNode'. Type '{ children: ReactElement<any, string | JSXElementConstructor>; }' is missing the following properties from type 'ReactPortal': key, type, props ts(2322)
我是 TS 的新手,我不确定如何将页面传递给 Layout。
错误消息可能非常混乱。
首先,要将组件 page
传递到 Layout 组件中,您需要在 <Layout>
标签内添加一个属性,其中包含 prop 的名称,在本例中为“children”,如下所示:<Layout children={page}><Layout/>
。查看此来源以获取更多信息:https://reactjs.org/docs/components-and-props.html
另外,功能组件只接受一个“prop”对象作为函数的参数,它是一个包含其他属性的对象。查看此页面 https://fettblog.eu/typescript-react/components/ 了解更多信息。 基本上你需要将函数定义重写为:
export default function Layout (props : { children : string }) { ...