React-Admin DateField,DateInput locale global
React-Admin DateField, DateInput locale global
React admin 允许您在使用 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>
但大多数时候我们不需要在组件上设置,而是需要全局配置。有办法全局设置吗?
我尝试设置 i18n 提供程序的默认设置 locale
,但看起来它只考虑翻译而不考虑日期格式。
我也尝试覆盖 Date.toLocaleDateString()
但效果不佳。
你可以使用 useLocale 挂钩,returns react-admin 的 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 语言环境。
React admin 允许您在使用 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>
但大多数时候我们不需要在组件上设置,而是需要全局配置。有办法全局设置吗?
我尝试设置 i18n 提供程序的默认设置 locale
,但看起来它只考虑翻译而不考虑日期格式。
我也尝试覆盖 Date.toLocaleDateString()
但效果不佳。
你可以使用 useLocale 挂钩,returns react-admin 的 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 语言环境。