根据the Material UI documentation,您可以向component
项目的Grid
属性提供字符串或组件。
我想更改一个现有的Grid
实例以充当锚点,但是我想使用Link
组件而不是将'a'
作为{{1} }属性(这是因为将component
用作组件属性会强制进行完全刷新,而我假设不使用'a'
组件。)
问题在于,实际上没有任何地方记录如何使用具有此属性的组件而不是字符串来完成。我可以使用字符串重载将其呈现为锚,而不是使用组件。
我尝试了几种向该属性提供组件的方法,但是最简单的情况是这样的:
Link
但是它总是突出显示为错误,并显示“没有重载方法匹配此调用”作为错误消息。
<Grid component={ Link }>
属性的重载如下:
component
所以我的问题是,这实际上意味着要完成吗?它似乎不像文档中所建议的提供like you can do with a Button
component那样简单地提供组件类型。
编辑:这是给我这个错误的代码示例。
component?: string | React.ComponentType<Omit<GridProps, StrippedProps>>;
我忘了提到我在成熟的react / redux代码库中使用TypeScript。我认为这是特定于TypeScript的错误,因为在codesandbox.io中没有看到它。这不是版本问题,因为我一直在同一版本的Material UI Core(4.1.1)中进行所有测试。
错误消息如下:
const Test: React.FunctionComponent = () => {
return(
<Grid component={ Link }/>
)
}