Hopp til innhold
Aksel

Søk

Ctrl+K for å søkeEsc for å lukke

Aksel

Designsystemet
God praksisBloggen

Grunnleggende

OverridableComponent

StabilOppdatert 30. april 2025

Hvordan bruke OverridableComponent

Flere av komponentene i Aksel er implementert med OverridableComponent. Dette API-et gjør det enkelt å overstyre hvilken komponent eller tag som komponenten rendres med.

Et vanlig eksempel på dette er bruken av React.Router sin Link-komponent. Ved å bruke as-proppen kan du enkelt løse dette og beholde typedefinisjonen for props.

JSX
<Link as={Router.Link} to="/about" >About</Link>

Extende komponenter

For å få riktige props ved extension av komponenter med OverridableComponent-api, må man bruke typeof <komponentnavn>

TSX
const CustomButton = (props: React.ComponentPropsWithRef<typeof Button>) => {
... custom code
<Button {...props} />
}

Styled-components

Flere CSS-in-JS-biblioteker bruker også et as-attributt for å overstyre tag eller komponent, noe som kan komplisere ting når man for eksempel bruker styled-components for å style en komponent fra designsystemet.

For styled-components, kan man bruke forwardedAs i stedet for as på komponentene.