reactjs - ListItem ve Typescript ile Link bileşeni kullanmak
Material-ui v3.5.1 kullanıyorum
ListItem'in Link bileşenini şu şekilde kullanmasını istiyorum:
<ListItem component={Link} to="/some/path">
<ListItemText primary="Text" />
</ListItem>
ama Typescript beni uzun bir hata mesajıyla karşılıyor (VSCode'da "component" kelimesi vurgulanmış), altta ise şöyle yazıyor:
The type "typeof Link" cannot be assigned to the type "ComponentClass<ListItemProps, any>"
Property 'to' is missing in type 'ListItemProps' but required in type 'Readonly'. [2322]
Bunlar gibi şeyleri Typescript ile çalıştırmak için bir çözüm yolu var mı?
Teşekkürler!
Cevap #1
Bu şu anda tür deklarasyonlarımızın bir kısıtlamasıdır (genel özelliklere geçene kadar). Geçici bir çözüm olarak, bağlantınızı başka bir bileşene çıkarabilirsiniz, örneğin.
function SomePathLink(props: ButtonBaseProps) {
return <Link to="/some/path" {...props} />
}
<ListItem component={SomePathLink}>
<ListItemText primary="Text" />
</ListItem>
Belgelerde daha ayrıntılı açıklama: https://material-ui.com/demos/buttons/#third-party-routing-library
