Visão geral do componente Seletor de data do React

    O Seletor de Data Ignite UI for React é um componente rico em recursos usado para inserir uma data por meio da entrada manual de texto ou escolher valores de data em uma caixa de diálogo de calendário que aparece. Leve e simples de usar, o Seletor de datas permite que os usuários naveguem até a data desejada com várias opções de visualização – mês, ano e década. Ele também oferece suporte a propriedades de validação comuns, como restrições de data mínima e máxima e campos obrigatórios.

    O componente Seletor de data Ignite UI for React permite que os usuários escolham uma única data por meio de um menu suspenso de calendário de exibição mensal ou campo de entrada editável. O Seletor de Data React também oferece suporte a um modo de diálogo para seleção somente no calendário, formatação de data personalizável e com reconhecimento de localidade e integração de validação.

    [!NOTE] The IgrDatePicker is a brand new component from Ignite UI for React version 18.7.0. The old IgrDatePicker prior to this version has been renamed to XDatePicker and its respective documentation page can be found under "Deprecated Components"

    React Date Picker Example

    Abaixo, você pode ver um exemplo que demonstra como o Seletor de Data funciona quando os usuários podem escolher uma data por meio de uma entrada de texto manual e clicar no ícone de calendário à esquerda para navegar até ela. Veja como renderizá-lo.

    Getting Started with React Date Picker

    Primeiro, você precisa instalar o Ignite UI for React executando o seguinte comando:

    npm install igniteui-react
    

    Você então precisará importar oIgrDatePicker CSS necessário e registrar seu módulo, assim:

    import { IgrDatePicker } from 'igniteui-react';
    import 'igniteui-webcomponents/themes/light/bootstrap.css';
    

    Para uma introdução completa ao Ignite UI for React, leia o tópico Comecando.

    Using the React Date Picker Component

    Display Date Picker

    Para instanciar aIgrDatePicker em seu estado padrãodropdown, use o seguinte código:

    <IgrDatePicker></IgrDatePicker>
    

    Options

    OIgrDatePicker pode ser vinculado a umdate.

    const date = new Date();
    
    <IgrDatePicker value={date}/>
    

    Projecting components

    Com slots de prefixo e sufixo, podemos adicionar conteúdo diferente antes e depois do conteúdo principal da entrada.

    <IgrDatePicker>
        <IgrIcon
            slot="suffix"
            name="arrow_upward"
            collection="material"
            class="small"
            onClick={() => datePickerRef.current.stepUp(DatePart.Month)}>
        </IgrIcon>
    </IgrDatePicker>
    

    O snippet acima adicionará um ícone adicional no final da entrada, logo após o ícone de limpeza padrão. Isso não removerá o ícone de alternância padrão, pois prefixos e sufixos podem ser empilhados um após o outro.

    Personalizando os ícones de alternância e limpeza

    O ícone do calendário e do clear pode ser modelado usando oscalendar slots e:clear

    <IgrDatePicker>
        <IgrIcon slot="calendar" name="calendar" collection="material" class="small"></IgrIcon>
        <IgrIcon slot="clear" name="delete" collection="material" class="small"></IgrIcon>
    </IgrDatePicker>
    

    Botões de ação personalizados

    Os botões de ação do seletor podem ser templateados usando oactions slot:

    <IgrDatePicker>
        <IgrButton
            slot='actions'
            onClick={() => datePickerRef.current.showWeekNumbers = true}>
            <span>Show Week Numbers</span>
        </IgrButton>
    </IgrDatePicker>
    

    Keyboard Navigation

    EleIgrDatePicker tem uma navegação intuitiva por teclado que facilita incrementar, diminuir ou pular entre diferentes DateParts, entre outros, sem precisar tocar no mouse.

    Chaves Descrição
    Mover um caractere para o início
    Mover um caractere para o final
    CASA Mover para o início
    FIM Mover para o final
    CTRL / CMD + Mover para o início da seção de data/hora - atual ou esquerda
    CTRL / CMD + Mover para o final da seção de data/hora - atual ou à direita
    Foco em uma parte de data/hora + Decrementa uma parte de data/hora
    Foco em uma parte de data/hora + Incrementa uma parte de data/hora
    CTRL / CMD +; Define a data/hora atual como o valor do editor
    ESC Fecha o pop-up do calendário e foca o campo de entrada

    Examples

    Dialog Mode

    TambémIgrDatePicker suporta umdialog modo:

    <IgrDatePicker mode="dialog"></IgrDatePicker>
    

    Display and input format

    inputFormatedisplayFormat são propriedades que podem ser definidas para fazer o editor do seletor seguir um formato especificado. EleinputFormat é baseado em localidade, então, se não houver nenhum local, o seletor será usado por padrão no que o navegador usa.

    Uma coisa boa a notar é que o Componente Date Picker sempre adicionará um zero inicial nasdate partes emonth se forem fornecidas em um formato que não tenha isso, por exemplo, .d/M/yy becomesdd/MM/yy. Isso se aplica apenas durante a edição.

    displayFormaté usado para formatar a entrada do seletor quando não está focada. Se nãodisplayFormat for fornecido, o selecionador usará oinputFormat como se fossedisplayFormat

    Mais informações sobre esses podem ser encontradas naIgrDateTimeInput seção de formato.

    Increment and decrement

    AsIgrDatePicker exposiçõesstepUp estepDown os métodos. Ambos vêm doIgrDateTimeInput e podem ser usados para incrementar e decrementar uma data específicaDatePart da data atualmente definida.

    <IgrDatePicker>
        <IgrIcon
            slot="prefix"
            name="arrow_upward"
            collection="material"
            onClick={() => datePickerRef.current.stepUp(DatePart.Month)}>
        </IgrIcon>
        <IgrIcon
            slot="suffix"
            name="arrow_downward"
            collection="material"
            onClick={() => datePickerRef.current.stepDown(DatePart.Month)}>
        </IgrIcon>
    </IgrDatePicker>
    

    In Forms

    PodemIgrDatePicker ser usados em um elemento de forma, os componentesmin emax propriedades atuam como validadores de forma.

    Em formulários, podemos gerenciar ochange evento do componente e atualizar o valor do rótulo.

    Calendar Specific settings

    ElesIgrDatePicker podem modificar algumas configurações do calendário por meio das propriedades que o Seletor de Data expõe. Alguns deles incluemvisibleMonths que permite que mais de um calendário seja exibido quando o selecionador expande,weekStart que determina o dia de início da semana,showWeekNumbers que mostra o número de cada semana do ano e mais.

    Internationalization

    A localização doIgrDatePicker pode ser controlada por meio de sualocale entrada.

    Veja como seria umaIgrDatePicker definição de local japonesa:

    <IgrDatePicker locale="ja-JP"></IgrDatePicker>
    

    Styling

    OIgrDatePicker componente deriva doIgrInput componente e,IgrCalendar expondo todas as partes CSS disponíveis. Veja Input Styling e Calendar Styling para referência.

    igc-date-picker::part(header) {
      background-color: var(--ig-primary-500);
      color: var(--ig-primary-500-contrast);
    }
    igc-date-picker::part(calendar-content) {
      background-color: var(--ig-surface-300);
    }
    igc-date-picker::part(date-inner current) {
      color: var(--ig-info-300);
      background-color: var(--ig-surface-300);
    }
    igc-date-picker::part(navigation-button):hover,
    igc-date-picker::part(months-navigation):hover,
    igc-date-picker::part(years-navigation):hover {
      color: var(--ig-secondary-500);
    }
    igc-date-picker::part(month-inner current),
    igc-date-picker::part(year-inner current),
    igc-date-picker::part(navigation-button),
    igc-date-picker::part(months-navigation),
    igc-date-picker::part(years-navigation) {
      color: var(--ig-info-300);
    }
    igc-date-picker::part(date-inner selected),
    igc-date-picker::part(month-inner selected),
    igc-date-picker::part(year-inner selected) {
      color: var(--ig-secondary-500-contrast);
      background-color: var(--ig-secondary-500);
    }
    

    API References

    Additional Resources