【问题标题】:Customize Reactive Search DateRange自定义响应式搜索 DateRange
【发布时间】:2019-12-23 06:15:03
【问题描述】:

我将如何处理国际化 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>

谢谢。

【问题讨论】:

  • 你能澄清一下吗?您是希望在 UI 中显示这种格式,还是希望使用这种格式进行查询。
  • @Yash 我想在 UI 中使用这种格式。不在查询中格式化。除非修改 node_module 是不可能的?
  • 这解决了您的问题吗?

标签: reactjs elasticsearch reactivesearch


【解决方案1】:

抱歉延迟回复。 DateRange 内部使用 DayPickerInput 来自 react-day-picker 和 Date 组件有一个名为 dayPickerInputProps 的道具,您可以直接使用它直接将道具发送到内部组件。

要格式化 UI 日期,您需要使用额外的包和道具。您可以转到此页面:https://react-day-picker.js.org/docs/input/ 并滚动到名为 Change Date Format 的部分以更好地了解。

这里是格式化 UI 的示例代码 sn-p:

需要的包:

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

希望对您有所帮助!

【讨论】:

  • 非常感谢,它运行良好。你能写一些关于国际化的代码吗?
  • 我没有国际化的经验,你可以肯定地在 ReactiveSearch 上创建一个问题,以获得已经实现它的其他人的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
相关资源
最近更新 更多