What is CD react-iOS-time-picker?

React-iOS-Time-Picker: Tidsvalg til Din App

07/03/2025

Rating: 4.52 (14967 votes)

I den moderne app-udvikling er brugeroplevelsen altafgørende. En af de ofte oversete, men kritiske komponenter, er tidsvælgeren. Standard HTML-inputfelter kan være klodsede og give en inkonsekvent oplevelse på tværs af enheder. Her kommer react-ios-time-picker ind som en elegant og effektiv løsning. Denne komponent er designet til at efterligne den intuitive tidsvælger, vi kender fra iOS, hvilket giver dine brugere en velkendt og behagelig interaktion, uanset platform.

What is CD react-iOS-time-picker?
cd react-ios-time-picker The MIT License. A modern time picker for your next react app ⌚️. Contribute to MEddarhri/react-ios-time-picker development by creating an account on GitHub.

Denne artikel vil dykke ned i, hvad react-ios-time-picker er, hvordan du nemt kan integrere den i dine React-applikationer, og hvordan du udnytter dens mange tilpasningsmuligheder. Vi vil udforske dens fordele, såsom dens lette vægt og fravær af eksterne afhængigheder, og give dig de redskaber, du skal bruge for at forbedre din apps funktionalitet og æstetik.

Indholdsfortegnelse

Hvad er react-ios-time-picker?

React-ios-time-picker er en robust og brugervenlig React-komponent, der giver udviklere mulighed for at implementere en tidsvælger med et rent og moderne iOS-inspireret design. Hovedtrækket ved denne komponent er dens letvægtsnatur og den bemærkelsesværdige kendsgerning, at den har nul afhængigheder. Dette betyder, at den ikke trækker unødvendig kode ind i dit projekt, hvilket resulterer i en mindre app-størrelse og potentielt hurtigere indlæsningstider. I modsætning til mange andre tidsvælgere kræver den ikke tunge biblioteker som Moment.js, hvilket yderligere reducerer din applikations samlede fodaftryk. Dette er en kæmpe fordel for performance-optimering og vedligeholdelse på lang sigt.

Komponenten er bygget med fokus på enkelhed og effektivitet, hvilket gør den til et ideelt valg for udviklere, der prioriterer både ydeevne og en god brugeroplevelse. Den tilbyder fleksibilitet i formatafgørelse, understøttende både 24-timers og 12-timers visning, og giver omfattende kontrol over dens udseende og opførsel via en klar og veldokumenteret API.

Kom godt i gang: Installation og grundlæggende brug

At komme i gang med react-ios-time-picker er utrolig ligetil. Den installeres som en standard npm-pakke, og integrationen i din React-komponent er minimal.

Installation

Du installerer pakken ved at køre følgende kommando i din projektmappe:

npm install react-ios-time-picker

Grundlæggende 24-timers format

Efter installation kan du importere TimePicker-komponenten og bruge den i din app. Her er et eksempel på, hvordan du implementerer en 24-timers tidsvælger:

import React, { useState } from 'react';
import { TimePicker } from 'react-ios-time-picker';

const MyApp = () => {
const [value, setValue] = useState('10:00');

const onChange = (timeValue) => {
setValue(timeValue);
};

return (
<div>
<p>Valgt tid (24-timers): {value}</p>
<TimePicker onChange={onChange} value={value} />
</div>
);
};

export default MyApp;

I dette eksempel importerer vi useState hook'en fra React til at håndtere komponentens tilstand. Variablen value holder den aktuelt valgte tid, initialiseret til '10:00'. Funktionen onChange opdaterer denne tilstand, hver gang brugeren vælger en ny tid i vælgeren. TimePicker-komponenten modtager onChange og value som props, hvilket skaber en kontrolleret komponent, hvor React administrerer tidsvælgerens tilstand.

Fleksibilitet med 12-timers format (AM/PM)

Hvis din applikation kræver et 12-timers format med AM/PM-indikation, er dette også meget nemt at opsætte. Du skal blot tilføje use12Hours prop'en til TimePicker-komponenten og justere din initiale værdi derefter:

import React, { useState } from 'react';
import { TimePicker } from 'react-ios-time-picker';

const MyApp = () => {
const [value, setValue] = useState('10:00 AM');

const onChange = (timeValue) => {
setValue(timeValue);
};

return (
<div>
<p>Valgt tid (12-timers): {value}</p>
<TimePicker onChange={onChange} value={value} use12Hours />
</div>
);
};

export default MyApp;

Ved at tilføje use12Hours prop'en til TimePicker-komponenten skifter den automatisk til 12-timers visning, inklusive en AM/PM-vælger. Det er vigtigt at sikre, at din initiale value også matcher dette format, f.eks. '10:00 AM' eller '03:30 PM'. Denne fleksibilitet gør komponenten anvendelig i en bred vifte af internationale og regionale sammenhænge, hvor tidsformater kan variere.

Dybdegående API-gennemgang: Tilpasning og kontrol

React-ios-time-picker leveres med et rigt sæt af API-props, der giver dig fuld kontrol over komponentens opførsel og udseende. Her er en detaljeret gennemgang af de vigtigste props:

NavnTypeStandardværdiBeskrivelse
valueStringn/aDen aktuelle tid, der vises i vælgeren. Skal være i formatet 'HH:MM' (24-timer) eller 'HH:MM AM/PM' (12-timer).
cellHeightNumber35Højden af hvert tidsvalgselement i vælgeren. Juster for at ændre udseendet.
placeHolderString"Selet_time"Tekst, der vises i inputfeltet, når ingen tid er valgt. God til at vejlede brugeren.
pickerDefaultValueString"00:00"Den tid, vælgeren starter med, når den åbnes første gang, hvis value er tom.
disabledBooleanfalseHvis sand, deaktiveres tidsvælgeren, og brugeren kan ikke interagere med den.
isOpenBooleanfalseStyrer, om tidsvælgeren skal være åben eller lukket. Nyttig til programmatisk kontrol.
requiredBooleanfalseIndikerer, om inputfeltet er påkrævet for formularvalidering.
cancelButtonTextString"Cancel"Teksten på annulleringsknappen. Kan bruges til lokalisering.
saveButtonTextString"Save"Teksten på gem-knappen. Kan bruges til lokalisering.
controllersBooleantrueBestemmer, om gem- og annulleringsknapperne skal vises.
seperatorBooleantrueBestemmer, om kolon-separatoren (:) mellem timer og minutter skal vises.
idStringn/aHTML id-attributten for inputfeltet. Vigtigt for tilgængelighed og formularer.
nameStringn/aHTML name-attributten for inputfeltet. Bruges til formularindsendelse.
use12HoursBooleanfalseHvis sand, vises tidsvælgeren i 12-timers format med AM/PM.
inputClassNameStringn/aCSS-klassen for inputfeltet. Tillader brugerdefineret styling.
popupClassNameStringn/aCSS-klassen for selve tidsvælger-popup'en. Tillader styling af vælgerens visuelle udseende.
onChangeFunctionn/aCallback-funktion, der kaldes, når en ny tid vælges (under scrolling). Modtager den nye værdi som argument.
onSaveFunctionn/aCallback-funktion, der kaldes, når brugeren klikker på gem-knappen. Modtager den valgte værdi.
onCloseFunctionn/aCallback-funktion, der kaldes, når tidsvælgeren lukkes (f.eks. ved at klikke på annuller eller udenfor).
onAmPmChangeFunctionn/aCallback-funktion, der kaldes, når AM/PM-værdien ændres i 12-timers format.
onOpenFunctionn/aCallback-funktion, der kaldes, når tidsvælgeren åbnes.

Detaljeret gennemgang af vigtige props:

  • value og onChange: Disse to props er fundamentale for at gøre TimePicker til en kontrolleret komponent i React. value bestemmer, hvilken tid der aktuelt vises, og onChange er den callback, der aktiveres, hver gang brugeren interagerer med vælgeren og en ny tid er valgt. At håndtere disse korrekt sikrer, at din applikations tilstand altid afspejler det, brugeren ser og vælger.

  • use12Hours: Som vist i eksemplerne ovenfor, er denne boolean-prop afgørende for at skifte mellem 24-timers og 12-timers visning. Det er en simpel, men effektiv måde at tilpasse sig forskellige brugerpræferencer eller regionale standarder.

  • cellHeight: Denne numeriske prop giver dig mulighed for at finjustere den visuelle tæthed af tidsvælgeren. En lavere værdi vil gøre elementerne mindre og mere tætpakkede, mens en højere værdi vil give dem mere plads. Dette er nyttigt for at tilpasse komponenten til din apps overordnede designsprog.

  • placeHolder, cancelButtonText, saveButtonText: Disse string-props er uvurderlige for at forbedre brugeroplevelsen og understøtte internationalisering. Du kan nemt ændre den standardtekst, der vises, hvilket gør komponenten mere intuitiv og tilgængelig for brugere med forskellige sprogpræferencer.

  • controllers og seperator: Med controllers kan du vælge at skjule 'Annuller' og 'Gem' knapperne, hvis din applikations logik ikke kræver dem, f.eks. hvis ændringer skal gemmes automatisk. seperator giver dig mulighed for at skjule kolon-separatoren, hvis du foretrækker et mere minimalistisk design eller et andet visuelt udtryk.

  • id og name: Disse props er afgørende for web-tilgængelighed (ARIA-standarder) og for korrekt håndtering af formularer. Ved at tildele et unikt id kan du forbinde inputfeltet med en label, hvilket forbedrer oplevelsen for brugere af skærmlæsere. name-prop'en er nødvendig, når tidsvælgeren er en del af en HTML-formular, så dens værdi kan sendes korrekt til serveren.

  • Event Handlers (onSave, onClose, onOpen, onAmPmChange): Mens onChange opdaterer værdien løbende, giver onSave dig mulighed for at udføre en handling, når brugeren eksplicit bekræfter sit valg. onClose og onOpen er nyttige til at håndtere UI-tilstande, f.eks. visning af indlæsningsindikatorer eller justering af andre komponenter, når vælgeren åbnes eller lukkes. onAmPmChange er specifik for 12-timers formatet og giver dig mulighed for at reagere, når brugeren skifter mellem AM og PM, hvilket kan være relevant for visse forretningslogikker.

Fordele ved at vælge react-ios-time-picker

Valget af en komponentbibliotek kan have stor indflydelse på et projekts succes. React-ios-time-picker skiller sig ud af flere årsager:

  • Overlegen Brugeroplevelse: Den efterligner den velkendte iOS-tidsvælger, hvilket skaber en intuitiv og friktionsfri oplevelse for brugere, især dem der er vant til Apple-produkter. Denne familiaritet reducerer indlæringskurven og øger brugertilfredsheden. Den visuelle appel og glatte animationer bidrager yderligere til en poleret fornemmelse.

  • Letvægt og Høj Ydeevne: Uden eksterne afhængigheder og et minimalt fodaftryk bidrager komponenten til hurtigere indlæsningstider og en mere responsiv applikation. Dette er afgørende for moderne web- og mobilapplikationer, hvor brugere forventer øjeblikkelig respons. Mindre kode betyder også færre potentielle sikkerhedshuller og lettere debugging.

  • Nem Integration: Som demonstreret er installation og grundlæggende brug yderst enkel. Den klare API gør det nemt at tilpasse og integrere komponenten i eksisterende React-applikationer uden at skulle skrive meget boilerplate-kode.

  • Fleksibilitet og Tilpasning: Evnen til at skifte mellem 12- og 24-timers formater samt de mange styling- og kontrolprops giver udviklere frihed til at tilpasse vælgeren præcist til deres apps behov og visuelle identitet. Dette inkluderer alt fra tekst på knapper til højden af individuelle celler.

  • Vedligeholdelse og Fællesskab: Projektets MIT-licens og åbne kildekode opmuntrer til fællesskabsbidrag. Dette betyder, at komponenten sandsynligvis vil blive vedligeholdt og forbedret over tid, hvilket sikrer dens relevans og kompatibilitet med fremtidige React-versioner og webstandarder. At have en aktiv udviklerbase giver også tryghed i forhold til fejlrettelser og nye funktioner.

I sammenligning med mere generiske HTML-inputtyper eller ældre JavaScript-biblioteker, der kræver omfattende konfiguration og ofte trækker store mængder unødvendig kode ind, tilbyder react-ios-time-picker en strømlinet og effektiv løsning, der er skræddersyet til moderne React-udvikling.

Avancerede brugsscenarier og tips

Integration i formularer

Når du bruger TimePicker som en del af en større formular, er det vigtigt at udnytte id og name props'ene. Dette sikrer, at værdien kan sendes korrekt med formularen og forbedrer tilgængeligheden:

<form onSubmit={handleSubmit}>
<label htmlFor="event-time">Vælg begivenhedstid:</label>
<TimePicker
id="event-time"
name="eventTime"
onChange={onChange}
value={value}
required
placeHolder="Indtast tid"
/>
<button type="submit">Indsend</button>
</form>

Her vil eventTime være navnet på feltet, når formularen sendes, og id'en forbinder det visuelt med label'en.

Dynamisk åbning/lukning

Du kan styre tidsvælgerens åbnings- og lukningsstatus programmatisk ved hjælp af isOpen prop'en. Dette er nyttigt, hvis du f.eks. ønsker at åbne vælgeren, når brugeren klikker på en ekstern knap, snarere end på inputfeltet selv:

const [isPickerOpen, setIsPickerOpen] = useState(false);

<button onClick={() => setIsPickerOpen(true)}>Åbn tidsvælger</button>
<TimePicker
isOpen={isPickerOpen}
onClose={() => setIsPickerOpen(false)}
onChange={onChange}
value={value}
/>

Husk at indstille onClose callback'en til at lukke vælgeren igen, når brugeren interagerer med den interne 'Annuller'-knap eller klikker udenfor.

Avanceret styling

Udover cellHeight kan du anvende brugerdefinerede CSS-klasser via inputClassName og popupClassName. Dette giver dig fuld kontrol over udseendet, f.eks. ændring af skrifttype, farver eller skygger:

.my-custom-input {
border: 2px solid #4CAF50;
border-radius: 8px;
padding: 10px;
font-size: 1.1em;
color: #333;
}

.my-custom-popup .react-ios-time-picker-body {
background-color: #f0f0f0;
border-radius: 15px;
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

.my-custom-popup .react-ios-time-picker-item {
color: #007bff;
font-weight: bold;
}
<TimePicker
inputClassName="my-custom-input"
popupClassName="my-custom-popup"
onChange={onChange}
value={value}
/>

Disse eksempler viser, hvordan du kan tage kontrol over komponenten og tilpasse den til selv de mest specifikke designkrav.

Bidrag til projektet

React-ios-time-picker er et open source-projekt, og bidrag er altid velkomne! Hvis du finder fejl, har forbedringsforslag, eller ønsker at tilføje nye funktioner, kan du bidrage direkte til projektet på GitHub.

Processen er typisk som følger:

  1. Klon repository'et:
    git clone https://github.com/MEddarhri/react-ios-time-picker
  2. Naviger ind i projektmappen:
    cd react-ios-time-picker
  3. Foretag dine ændringer, og send derefter en pull request.

Dette fællesskabsdrevne aspekt er en stor styrke, da det sikrer, at komponenten forbliver relevant og af høj kvalitet over tid.

Ofte Stillede Spørgsmål (FAQ)

Er react-ios-time-picker virkelig uden afhængigheder?

Ja, det er korrekt! En af de store fordele ved react-ios-time-picker er, at den er designet til at fungere helt uden eksterne JavaScript-biblioteker eller frameworks udover React selv. Dette holder pakken utrolig let og minimerer risikoen for afhængighedskonflikter.

Kan jeg ændre udseendet og følelsen af tidsvælgeren?

Absolut! Komponentens API inkluderer props som cellHeight, inputClassName og popupClassName, der giver dig omfattende kontrol over den visuelle præsentation. Du kan justere størrelsen på elementerne, anvende dine egne CSS-klasser for at ændre farver, skrifttyper, baggrunde og meget mere, så det matcher din apps design.

Understøtter den formularvalidering?

Ja, den understøtter grundlæggende formularvalidering via required prop'en. Derudover kan du bruge onChange og onSave callback-funktionerne til at implementere mere kompleks valideringslogik på din side, f.eks. tjekke om tiden falder inden for et bestemt interval.

Hvad er forskellen på onChange og onSave?

onChange kaldes kontinuerligt, hver gang brugeren ruller på tidsvælgeren, og en ny værdi er valgt. Dette er nyttigt, hvis du vil give øjeblikkelig feedback eller opdatere andre dele af UI'en i realtid. onSave kaldes derimod kun, når brugeren eksplicit klikker på 'Gem'-knappen (hvis controllers er sat til true). Dette er typisk det tidspunkt, hvor du vil gemme den endelige valgte tid til din applikations tilstand eller sende den til en backend.

Er tidsvælgeren mobilvenlig og responsiv?

Ja, komponenten er designet med inspiration fra iOS's egen tidsvælger, hvilket gør den iboende mobilvenlig og responsiv. Den fungerer godt på tværs af forskellige skærmstørrelser og enheder, hvilket sikrer en ensartet og god brugeroplevelse for alle dine brugere, uanset om de bruger en desktop-computer eller en smartphone.

Konklusion

React-ios-time-picker er en fremragende komponent for enhver React-udvikler, der søger en moderne, letvægts og visuelt tiltalende tidsvælger. Dens nul-afhængighedsarkitektur, fleksible API og intuitive brugeroplevelse gør den til et ideelt valg for at forbedre funktionaliteten i dine applikationer. Ved at implementere denne komponent kan du tilbyde dine brugere en velkendt og effektiv måde at vælge tider på, samtidig med at du holder din kodebase ren og din applikation hurtig og responsiv. Uanset om du bygger en simpel formular eller en kompleks tidsplanlægningsapplikation, vil react-ios-time-picker utvivlsomt forenkle din udviklingsproces og løfte din apps brugeroplevelse.

Hvis du vil læse andre artikler, der ligner React-iOS-Time-Picker: Tidsvalg til Din App, kan du besøge kategorien Teknologi.

Go up