reactjs - 自定义响应式搜索 DateRange
问题描述
我将如何处理国际化 ReactiveSearch DateRange 组件的实现?我需要自定义日期格式(“dd.mm.yyyy”)和翻译的月份名称。
<ReactiveBase
app="carstore-dataset"
credentials="4HWI27QmA:58c731f7-79ab-4f55-a590-7e15c7e36721">
<DateRange
componentId="DateSensor"
dataField="mtime"
title="DateRange"
defaultValue={{
start: new Date('2019-04-01'),
end: new Date('2019-04-07')
}}
placeholder={{
start: 'Start Date',
end: 'End Date'
}}
focused={true}
numberOfMonths={2}
queryFormat="date"
autoFocusEnd={true}
showClear={true}
showFilter={true}
filterLabel="Date"
URLParams={false}
/>
<div>
Hello ReactiveSearch!
</div>
</ReactiveBase>
谢谢。
解决方案
很抱歉延迟回复。DateRange
内部使用DayPickerInput
fromreact-day-picker
和 Date 组件有一个 prop 叫做dayPickerInputProps
你可以直接使用它来将 props 直接发送到内部组件。
要格式化 UI 日期,您需要使用额外的包和道具。您可以转到此页面:https ://react-day-picker.js.org/docs/input/并滚动到调用部分Change Date Format
以更好地理解。
以下是格式化 UI 的示例代码片段:
所需包裹:
import dateFnsFormat from "date-fns/format";
import dateFnsParse from "date-fns/parse";
import { DateUtils } from "react-day-picker";
代码
function parseDate(str, format, locale) {
const parsed = dateFnsParse(str, format, { locale });
if (DateUtils.isDate(parsed)) {
return parsed;
}
return undefined;
}
function formatDate(date, format, locale) {
return dateFnsFormat(date, format, { locale });
}
const FORMAT = "dd/MM/yyyy"; // Your Format
<DateRange
componentId="DateSensor"
dayPickerInputProps={{
formatDate,
format: FORMAT,
parseDate
}}
dataField="date_from"
/>
您可以在这里查看一个工作示例:https ://codesandbox.io/s/daterange-9qfvo
希望这可以帮助!
推荐阅读
- svg - I complie test code of svgpp ,there is error forbids declaration of ‘BOOST_DELETED_FUNCTION’ with no type。But I have install boost
- python - 在为类和 chrome gui 错误运行我的 selenium 代码时出现两个错误
- elm - Elm 语言中的“Program 是由三个类型变量参数化的类型:flags、model 和 msg”是什么意思?
- php - php preg_replace 正则表达式替换子匹配中的匹配字符
- python - 创建列表时,“Amounts_list”看起来好像没有将值添加到列表中。我得到一个 None 值
- rest - 测试远程 REST 服务 API,特别是 HubSpot
- google-compute-engine - 在 Windows 服务器上配置 Stackdriver 代理以收集 Qlik 日志
- vue.js - Quasar Framework v1 中的 Setp Apollo graphql
- javascript - 想要从数组中拼接一个元素
- reactjs - 使用 scss 为 react-bootstrap 自定义样式