首页 文章

React Datepicker with redux-form

提问于
浏览
0

如何使react-datepicker与redux-form绑定?

我有这个redux-form字段:

<Field name="due_date" component={props =>
  <DatePicker
    {...props}
    readOnly={true}
    selected={this.state.due_date}
    value={this.state.due_date}
    onChange={this.handleDueDate}  
  />
} />

每当我提交redux表单时,都会返回一个没有绑定datepicker值的空对象...

我的onChange:

handleDueDate(date) {
    this.setState({
      due_date: moment(date).format('L')
    }, () => {
      // do I need to dispatch and action here to update the redux-form in state tree? 
    })
  }

2 回答

  • 1

    对于未来的读者,只需转到此链接:DatePicker in Redux Form

    首先,我创建了上面链接中提到的组件,并且刚刚传递了选定的道具 . 在我的情况下:

    <Field
                 name="due_date"
                 component={DatePickerComponent}
                 selected={this.state.date_of_briefing} />
    
  • 2

    你必须制作一个自定义组件来验证并使用带有redux-form的datepicker

    试试这个

    const datePicker = ({ input, label, type, className, selected, meta: { touched, error } }) => (
          <div>
            <div>
              <DatePicker {...input}
                selected={selected} placeholder={label}
                type={type} className={className}
                peekNextMonth
                showMonthDropdown
                showYearDropdown
                dropdownMode="select"
              />
              {touched && error && <span className="error_field">{error}</span>}
            </div>
          </div>
        )
    

    然后将props传递给该自定义组件

    <Field
                name="date_of_birth"
                component={datePicker}
                type="text"
                selected={this.state.date_of_birth}
                onChange={this.handleChange.bind(this)}
                className="form-control"
              />
    

相关问题