繁体   English   中英

将react-dates与redux-form一起使用会导致错误

[英]Using react-dates with redux-form results in an error

我正在尝试使用带有redux-form react-dates 为此做了一个render事情。 我已经以相同的方式处理了text inputselect字段。 那些工作正常。 DateRangePicker甚至SingleDatePicker上得到一个时髦的错误,我无法理解。 任何想法/建议都将不胜感激。

渲染组件是否为:

const renderDateRangePicker = ({
  input,
  focusedInput,
  onFocusChange,
  startDatePlaceholderText,
  endDatePlaceholderText
}) => (
  <DateRangePicker
    onDatesChange={(start, end) => input.onChange(start, end)}
    onFocusChange={onFocusChange}
    startDatePlaceholderText={startDatePlaceholderText}
    endDatePlaceholderText={endDatePlaceholderText}
    focusedInput={focusedInput}
    startDate={(input.value && input.value.startDate) || null}
    startDateId="startDateId"
    endDateId="endDateId"
    endDate={(input.value && input.value.endDate) || null}
    minimumNights={0}
  />
)

我的课只是这样的形式:

class ActivityForm extends Component {
  // values: ['startDate', 'endDate']
  state = {
    focusedInput: null
  }

  onFocusChange(focusedInput) {
    this.setState({ focusedInput });
  }

  render () {
    const { focusedInput } = this.state
    const { handleSubmit, teams } = this.props

    return (
      <form onSubmit={handleSubmit} className="activity__form">
        <div className="activity__form_row">
          <Field
            name="name"
            label="Activity name"
            component={renderTextField}
            margin="normal"
            validate={[required]}
            className="activity__form_field_name"
            InputLabelProps={{
              shrink: true,
            }}
          />
          <div className="activity__form_spacer"/>
          <Field
            name="daterange"
            onFocusChange={this.onFocusChange}
            focusedInput={focusedInput}
            component={renderDateRangePicker}
          />
          <div className="activity__form_spacer"/>
          <Button className="activity__form_button" type="submit">Save</Button>
        </div>
      </form>
    )
  }
}

export default reduxForm({ form: 'activity' })(ActivityForm)

由于某些原因,DateRangePicker会导致一个奇怪的错误: Uncaught TypeError: Cannot read property 'createLTR' of undefined

我想念什么?

我认为此错误是由于react-dates初始化的丢失或放错位置引起的,您可以查看( https://github.com/airbnb/react-dates )中的Initialize部分

import 'react-dates/initialize';

看起来好像还有DateRangePicker的更新:

因此,将starteDateId和endDateId包含在DateRangePicker组件的支持中。

<DateRangePicker
      startDateId="2" // PropTypes.string.isRequired,
      endDateId="1" // PropTypes.string.isRequired,
      startDate={this.props.filters.startDate}
      endDate={this.props.filters.endDate}
      onDatesChange={this.onDatesChange}
      focusedInput={this.state.calendarFocused}
      onFocusChange={this.onFocusChange}
      showClearDates={true}
      numberOfMonths={1}
      isOutsideRange={() => false}
    />

它为我工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM