21/06/2026
I moderne webudvikling med React er det en fundamental nødvendighed at kunne vise forskelligt indhold baseret på applikationens tilstand. Dine komponenter skal ofte tilpasse sig data, brugerinteraktioner eller andre betingelser. Dette kaldes betinget rendering (conditional rendering), og det er en teknik, enhver React-udvikler skal mestre. Heldigvis giver React os mulighed for at bruge ren JavaScript-logik direkte i vores JSX, hvilket åbner op for elegante og effektive løsninger. En af de mest almindelige og kompakte metoder til dette er den logiske AND-operator (&&). I denne artikel vil vi dykke ned i, hvordan du kan bruge && til at skabe dynamiske brugerflader, hvornår det er det rigtige valg, og hvilke alternativer du har til rådighed.

Hvad er Betinget Rendering?
Forestil dig en simpel applikation: en pakkeliste. Nogle genstande på listen er pakket, andre er ikke. Vi vil gerne vise et flueben (✅) ved siden af de genstande, der er pakket. Uden betinget rendering ville vi ikke kunne skelne mellem de to tilstande. Betinget rendering giver os netop muligheden for at sige: "Hvis denne betingelse er sand, så vis dette element. Ellers, vis noget andet (eller ingenting)." Dette styres i React ved hjælp af standard JavaScript-operatorer som if-sætninger, den ternære operator (? :) og den logiske AND-operator (&&).
Den Klassiske Tilgang: if/else-sætninger
Lad os starte med den mest grundlæggende metode. Antag vi har en Item-komponent, der modtager to props: name og isPacked.
function Item({ name, isPacked }) { if (isPacked) { return <li className="item">{name} ✅</li>; } return <li className="item">{name}</li>;}Denne kode fungerer perfekt. Hvis isPacked er true, returnerer komponenten et listeelement med et flueben. Hvis den er false, returneres det uden. Ulempen er, at koden kan blive repetitiv. Læg mærke til, at <li className="item">{name}</li> er gentaget i begge grene af vores logik. Hvis vi senere vil ændre klassenavnet, skal vi huske at gøre det to steder. For mere komplekse komponenter kan denne tilgang hurtigt blive uoverskuelig.
En Mere Kompakt Løsning: Den Logiske AND-Operator (&&)
Her kommer &&-operatoren ind i billedet som en elegant genvej. Den er perfekt til situationer, hvor du enten vil rendere et element eller ingenting. Logikken i JavaScript er simpel:
- Hvis udtrykket til venstre for
&&er sandt (truthy), evalueres og returneres udtrykket til højre. - Hvis udtrykket til venstre for
&&er falsk (falsy), stoppes evalueringen, og det falske udtryk returneres.
React er smart nok til at vide, at værdier som false, null, og undefined ikke skal renderes i DOM'en. De skaber blot et "hul" i outputtet. Vi kan derfor omskrive vores Item-komponent sådan her:
function Item({ name, isPacked }) { return ( <li className="item"> {name} {isPacked && '✅'} </li> );}Dette kan læses som: "Vis navnet, og HVIS isPacked er sand, SÅ vis også fluebenet". Koden er nu mere koncis og mindre repetitiv. Vi har kun én <li>-tag, hvilket gør vedligeholdelse lettere.

En Vigtig Faldgrube: Pas på med Tal!
En almindelig fejl, især for nye React-udviklere, er at bruge en numerisk værdi til venstre for &&. Antag at du vil vise antallet af nye beskeder, men kun hvis der er mere end nul.
const messageCount = 0;// Forkert tilgang{messageCount && <p>Du har nye beskeder</p>}Man kunne forvente, at dette ikke ville rendere noget, da 0 er en falsy værdi i JavaScript. Men problemet er, at når venstre side er falsy, returnerer &&-udtrykket selve den falsy værdi. I dette tilfælde er det 0. React vil gladeligt rendere tallet 0 på skærmen, hvilket sjældent er det ønskede resultat. Den korrekte måde at gøre det på er at sikre, at udtrykket til venstre altid er en boolean:
// Korrekt tilgang{messageCount > 0 && <p>Du har {messageCount} nye beskeder</p>}Her vil messageCount > 0 evaluere til false, og React vil korrekt springe renderingen af paragraffen over.
Alternativet: Den Ternære Operator (? 🙂
Hvad nu hvis vi vil vise én ting, hvis betingelsen er sand, og en *anden* ting, hvis den er falsk? Her er && ikke tilstrækkelig. I stedet kan vi bruge den ternære operator, som er en kompakt inline if-else-sætning.
Syntaksen er: betingelse ? udtryk_hvis_sand: udtryk_hvis_falsk.

Lad os udvide vores eksempel. Hvis en genstand er pakket, vil vi overstrege teksten. Hvis ikke, skal den vises normalt.
function Item({ name, isPacked }) { return ( <li className="item"> {isPacked ? (<del>{name} ✅</del>): name} </li> );}Denne kode er meget læselig: "Hvis isPacked er sand, så vis en overstreget tekst med flueben, ellers vis bare navnet." Den ternære operator er utrolig nyttig, men man skal passe på ikke at indlejre for mange af dem, da det kan gøre koden svær at læse. Hvis logikken bliver for kompleks, er det bedre at bruge en variabel eller opdele komponenten.
Sammenligning: && vs. Ternær Operator
For at give et klart overblik, er her en tabel, der sammenligner de to tilgange:
| Kriterie | Logisk AND (&&) | Ternær Operator (? 🙂 |
|---|---|---|
| Anvendelse | Vis et element eller ingenting. | Vis ét af to elementer. |
| Syntaks | betingelse && <Element /> | betingelse ? <ElementA />: <ElementB /> |
| Håndtering af 'falsk'-tilfælde | Renderer intet. | Renderer eksplicit et fallback-element. |
| Læsbarhed | Meget høj for simple tilfælde. | Høj, men kan blive uoverskuelig ved indlejring. |
| Bedst til | Valgfri rendering af UI-elementer som notifikationer, badges, eller ikoner. | Skift mellem to forskellige tilstande, f.eks. 'Loading' vs. 'Loaded' eller 'Login' vs. 'Logout' knapper. |
Når Logikken Bliver For Kompleks: Brug Variabler
Selvom inline operatorer er smarte, er der en grænse. Når dine betingelser bliver komplekse med flere else if-scenarier, er den mest læsbare og fleksible tilgang at definere en variabel uden for dit JSX.
function Item({ name, isPacked, importance }) { let itemContent = name; if (isPacked) { itemContent = <del>{name} ✅</del>; } else if (importance > 2) { itemContent = <strong>{name}</strong>; } return ( <li className="item"> {itemContent} </li> );}Denne metode er mere verbose, men den er også markant lettere at læse og udvide. Du separerer logikken fra præsentationen, hvilket er et sundt princip i softwareudvikling.

Ofte Stillede Spørgsmål (FAQ)
Hvornår er det bedst at bruge && operatoren?
Brug &&, når du har en simpel betingelse, der afgør, om et enkelt stykke JSX skal vises eller ej. Det er ideelt til at tilføje valgfrie elementer som advarselsbannere, ikoner eller ekstra information, der kun er relevant under visse omstændigheder.
Hvad er den største fejl, man kan begå med && i React?
Den største og mest almindelige fejl er at bruge en numerisk værdi (især 0) som betingelse. Dette vil få React til at rendere tallet '0' på siden. Sørg altid for, at din betingelse evaluerer til en sand boolean (true eller false), f.eks. ved at bruge en sammenligningsoperator som count > 0.
Hvorfor kan jeg ikke bruge en if/else-sætning direkte i JSX?
JSX er syntaktisk sukker over JavaScript-funktionskald og -objekter. En if/else-sætning er en 'statement' (en kommando), ikke et 'expression' (noget der returnerer en værdi). Du kan kun indlejre 'expressions' inden i {} i JSX. Derfor fungerer den ternære operator (? :) og &&, da de begge er expressions, der returnerer en værdi.
Konklusion
Betinget rendering er kernen i at bygge interaktive og dynamiske React-applikationer. Den logiske AND-operator (&&) er et kraftfuldt og elegant værktøj i din værktøjskasse, perfekt til de situationer, hvor et element enten skal vises eller skjules helt. Ved at forstå dens styrker, dens faldgruber (som 0-problemet), og hvordan den adskiller sig fra alternativer som den ternære operator og variable, kan du træffe bedre beslutninger og skrive kode, der ikke kun virker, men også er ren, læsbar og nem at vedligeholde. Vælg altid den metode, der bedst kommunikerer din intention og holder din komponent så simpel som muligt.
Hvis du vil læse andre artikler, der ligner React: Betinget Visning med && Operatoren, kan du besøge kategorien Sundhed.
