React-Admin DateField, глобальная локаль DateInput - PullRequest
0 голосов
/ 28 апреля 2020

Администратор React позволяет вам установить локали Даты в компоненте, когда вы используете DateField и DateInput.

<DateField source="publication_date" locales="fr-FR" />
// renders the record { id: 1234, publication_date: new Date('2017-04-23') } as
<span>23/04/2017</span>

но в большинстве случаев нам не нужно устанавливать его на компоненте, нам нужно настраивать его глобально. Есть ли способ установить его глобально?

Я попытался установить значение по умолчанию locale провайдера i18n, но похоже, что он рассматривается только для перевода, а не для форматирования даты.

Также я попытался переопределить Date.toLocaleDateString(), но не сработало.

1 Ответ

1 голос
/ 01 мая 2020

Вы можете использовать хук useLocale, который возвращает текущую локаль i18nProvider реагирующего администратора, которая по умолчанию имеет значение 'en'

https://marmelab.com/react-admin/Translation.html#uselocale -getting-the-current-locale

Предположим, это представление Показать:

import { useLocale } from 'react-admin'

export const ResourceShow = props => {

    const locale = useLocale()

    return (
        <Show {...props}>
            <SimpleShowLayout>
                <DateField source="publication_date" locales={locale} />
            </SimpleShowLayout>
        </Show>
    )
}

И если вы действительно хотите переопределить Date.toLocaleDateString, то, что не рекомендуется, вы можете сделать это с помощью:

Date.prototype.toLocaleDateString = customFunc

Кстати, я согласен с тем, что DateField должен использовать локаль i18nProvider по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...