将样式应用于第三方组件的标准方法不适用于 react-router-dom 链接。
export const PurchaseFooterItemLink = glamorous(Link)({...})
我有以下代码,其中除 Link 之外的所有组件都已设置样式,并且必须设置样式。
<PurchaseFooterListItem key={6}>
<Link to={{pathname:'/purchase/startDate', state:{purchase: purchase }}}>
<PurchaseFooterItemIcon src='/icons/calendar.png'></PurchaseFooterItemIcon>
<PurchaseFooterItemText>{purchase.startDate? purchase.startDate.toLocaleDateString():''}</PurchaseFooterItemText>
</Link>
</PurchaseFooterListItem>
当我将以下内容添加到我的样式文件时
import {Link as ReactRouterLink} from 'react-router-dom'
export const PurchaseFooterItemLink = glamorous(ReactRouterLink)({textDecoration:'none', color: 'RGB(245,245,245)'});
然后导入它并用它替换 Link ......
<PurchaseFooterItemLink to={{pathname:'/purchase/startDate', state:{purchase: purchase }}}>
...打字稿告诉我,“to”和“state”都不是存在的属性,因此它不会将其识别为反应路由器链接。它给出 PurchaseFooterItemLink 的类型为
GlamorousComponent<object & {}, object>
我尝试了替代语法(https://github.com/paypal/glamorous/issues/145)
import withStyle from 'react'
export const PurchaseFooterItemLink = ReactRouterLink.withStyle({textDecoration:'none', color: 'RGB(245,245,245)'});
但这也不起作用 - 它说 withStyle 从未使用过。所以不知道该尝试什么。
通常与第三方组件类似的问题 -无法使用 Glamorous 设置第三方组件的样式
编辑:打字稿错误消息是:
[ts] Property 'to' does not exist on type 'IntrinsicAttributes &
IntrinsicClassAttributes<Component<object & ExtraGlamorousProps, any, any>>
& Readonly<{ children?: ReactNode; }> & Readonly<object &
ExtraGlamorousProps>
当您将鼠标悬停在 PurchaseFooterItemLink 上时,它会显示如下类型,对我而言,问题是类型显示为对象而不是链接:
const PurchaseFooterItemLink: GlamorousComponent<object & {}, object>