Benutzerdefinierte Tageszelle

Verwenden Sie die Render-Prop der Day-Komponente, um das Aussehen jeder Tageszelle anzupassen. Dies ist nützlich, um Ereignisanzeigen, Tooltips oder ein vollständig benutzerdefiniertes Styling für einzelne Tage hinzuzufügen.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
const eventDates = new Set([5, 12, 18, 25]);
function CompoundCustomDay() {
const [value, setValue] = useState<Date | null>(null);
return (
<DatePicker.Root value={value} onChange={setValue} inline>
<DatePicker.Content>
<DatePicker.Header>
<DatePicker.PrevButton />
<DatePicker.Title />
<DatePicker.NextButton />
</DatePicker.Header>
<DatePicker.Grid>
{({ date }) => (
<DatePicker.Day date={date}>
{({ day, isDisabled, isSelected, isToday, onClick, onMouseEnter, onMouseLeave }) => (
<button
type="button"
onClick={onClick}
onMouseEnter={onMouseEnter}
onMouseLeave={onMouseLeave}
disabled={isDisabled}
style={{
display: "flex",
flexDirection: "column",
alignItems: "center",
justifyContent: "center",
width: 36,
height: 36,
border: "none",
borderRadius: 6,
cursor: isDisabled ? "default" : "pointer",
background: isSelected ? "#3b82f6" : "transparent",
color: isSelected ? "#fff" : isToday ? "#2563eb" : undefined,
fontWeight: isToday || isSelected ? 600 : 400,
fontSize: 13,
position: "relative",
}}
>
{day}
{eventDates.has(date.getDate()) && (
<span
style={{
position: "absolute",
bottom: 2,
width: 4,
height: 4,
borderRadius: "50%",
background: isSelected ? "#fff" : "#f59e0b",
}}
/>
)}
</button>
)}
</DatePicker.Day>
)}
</DatePicker.Grid>
</DatePicker.Content>
</DatePicker.Root>
);
}
March 2026
Su
Mo
Tu
We
Th
Fr
Sa

Day Render-Props

PropTypBeschreibung
dateDateDas Datumsobjekt
daynumberTag des Monats (1-31)
isTodaybooleanOb dies der heutige Tag ist
isSelectedbooleanOb dieser Tag ausgewählt ist
isDisabledbooleanOb dieser Tag deaktiviert ist
isInRangebooleanOb dieser Tag innerhalb eines ausgewählten Bereichs liegt
isRangeStartbooleanOb dies der Anfang des Bereichs ist
isRangeEndbooleanOb dies das Ende des Bereichs ist
isInHoverRangebooleanOb sich dieser Tag im Hover-Vorschaubereich befindet
isHoverTargetbooleanOb dies der Endpunkt des Hovers ist
isOutsideDaybooleanOb dieser Tag zu einem benachbarten Monat gehört
isHighlightedbooleanOb dieser Tag einen Hervorhebungspunkt hat
isFocusedbooleanOb dieser Tag den Tastaturfokus hat
onClick() => voidKlick-Handler
onMouseEnter() => voidMouse-Enter-Handler
onMouseLeave() => voidMouse-Leave-Handler