问题:当我使用下面的表达式时,IDE警告typescript语法错误。我认为typescript期望子节点被分配为ReactNode
而不是Array<object>
。
----/page.tsx/----
...
<TopBar>{[
{text:"career",href:"",class:"p-0 m-0"},
{text:"contact",href:"",class:"p-0 m-0"},
{text:"patient registry",href:"/patient_registry",class:"custom-outline p-1 rounded-2xl px-4 hover:bg-black hover:text-white"}
]}</TopBar>
...
----------------
----/TopBar.tsx/----
export default function TopBar({children}:Array<object>){//<-SYNTAX ERROR
const menus:Array<ReactNode> = [];
children.forEach((element:object,index:number)=>{
menus.push(<Link key={index} className={element.class} href={element.href}>{element.text}</Link>);
});
return(
<div className={"pl-4 pr-16 flex items-center h-16 w-screen justify-between border-b-gray-200 border-2 fixed bg-white z-10"}>
<ImgBlock src={"/assets/svg/logo.png"} width={"7rem"} height={"4rem"}/>
<div className={"flex gap-8 items-center"}>
{menus}
</div>
</div>
);
}
----------------
字符串
React.js在@ts-ignore
上运行良好,但我不能忍受我的源代码中的红色下划线。告诉我解决这个问题的语法。
3条答案
按热度按时间gg58donl1#
的解构语义:
字符串
相当于:
型
这个错误是有意义的,因为属性
children
并不真正存在于数组类型中,因为它们不是ReactProps对象。要修复它,我们需要的只是用一个对象 Package 原始类型,并添加一个键,键名为
children
,并带有您所需的类型。型
1rhkuytd2#
字符串
azpvetkf3#
谢谢大家!我只是这样编辑我的代码:
字符串