如何将 react-datepicker 与 redux 表单一起使用?

Posted

技术标签:

【中文标题】如何将 react-datepicker 与 redux 表单一起使用?【英文标题】:How to use react-datepicker with redux form? 【发布时间】:2019-09-22 10:44:57 【问题描述】:

我正在尝试使 react datepicker 与 redux-form 一起使用,我已经阅读了关于 *** 的答案我使选择器工作正常,但由于某种原因我无法在该字段上输入任何内容。有趣的是,如果我尝试粘贴像 12/30/2019 这样的有效日期,那么它也可以工作。这是我的代码

import React from "react";
import  Field, reduxForm  from "redux-form";
import DatePicker from "react-datepicker";
import moment from "moment";

const RenderDatePicker = ( input ) => (
  <div>
    <DatePicker
      ...input
      className="form-control"
      onChange=date => input.onChange(moment(date).format("MM/DD/YYYY"))
      selected=input.value ? moment(input.value, "MM/DD/YYYY") : null
    />
  </div>
);

const SimpleForm = props => 
  const  handleSubmit, pristine, reset, submitting  = props;
  return (
    <form onSubmit=handleSubmit>
      <Field name="datePicker" component=RenderDatePicker />

      <button type="submit">
        Submit
      </button>
    </form>
  );
;

export default reduxForm(
  form: "simple"
)(SimpleForm);

【问题讨论】:

试试这个参考 -> github.com/Hacker0x01/react-datepicker/issues/543 【参考方案1】:

我所做的是创建一个单独的Datepicker 组件

export const FieldDatePicker = ( input, placeholder, minDate, maxDate ) => (
    <DatePicker
        className="plus-icon"
        dateFormat="yyyy/MM/dd"
        selected=input.value || null
        onChange=input.onChange
        minDate=minDate
        maxDate=maxDate
        disabledKeyboardNavigation
        placeholderText=placeholder
    />
);

然后从&lt;Field /&gt;使用它

<Field
    component=FieldDatePicker
    name="date_till"
    placeholder="YYYY/MM/DD"
/>

【讨论】:

【参考方案2】:

试试这个

const RenderDatePicker = (input) => 
const inputWrap = (
    <div>
     <DatePicker
      ...input
      className="form-control"
      onChange=date => input.onChange(moment(date).format("MM/DD/YYYY"))
      selected=input.value ? moment(input.value, "MM/DD/YYYY") : null
    />

return (
    <div>
        inputWrap
    </div>
);

;

【讨论】:

以上是关于如何将 react-datepicker 与 redux 表单一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react-datepicker 中自定义样式?

将样式/类添加到 react-datepicker

如何使用 Formik 在 react-datepicker 中设置初始日期?

如何设置 react-datepicker 样式?

如何使 react-datepicker 正确显示?

如何在 react-datepicker 中选择默认日期范围