【发布时间】:2021-04-22 10:53:32
【问题描述】:
我有一个组件将 ReactNode 数组传递给另一个组件。
const getOptions = (links: Array<Links>): Array<ReactNode> => {
const options: Array<ReactNode> = [];
links.map((link): void => {
options.push(
<Link
href={link.path}
key={link.page}
>
{link.label}
</Link>
);
});
return options;
};
<<<<<some code>>>>>>
<Dropdown dropDownOptions={getOptions(dropdownLinks)} />
我的下拉组件:
const Dropdown = ({ dropDownOptions }: any): JSX.Element => {}
所以我遇到的问题是,当我使用任何作为下拉选项类型时,我会收到警告:
对象模式参数应使用非任何类型输入
但是当我使用 Array 作为类型时,我得到以下错误:
类型“any[]”上不存在属性“dropDownOptions”
我不知道如何解决这个问题。
【问题讨论】:
-
我认为当您执行
{ dropDownOptions }: any[]时,您是在说对象{ dropDownOptions }是 any[]`` 的数组。这是错误的,它是一个对象而不是一个数组。 -
@Magofoco 但我传递的道具是一个数组
。我不确定在这里使用什么类型是正确的。
标签: reactjs typescript typechecking