Сбросить состояние реакции дня выбора после повторного рендеринга - PullRequest
0 голосов
/ 10 июня 2018

Так что в основном в моем приложении есть функция создания новых событий путем заполнения формы.

К сожалению, проблема в том, что у меня есть DayPicker компонент с множественным выбором из https://react-day-picker.js.org/examples/selected-multiple и я хотел бы очистить его состояние при размонтировании, потому что я хочу иметь новый пустой календарь в каждой новой форме.Без этого DayPicker прежнее состояние запоминается.

Я также использую redux-form из https://redux -form.com / 7.3.0 / docs / gettingstarted.md /

Есть идеи, как мне этого добиться?

MultiDayPicker

import React, {Component} from 'react';
import DayPicker, {DateUtils} from 'react-day-picker';
import PropTypes from 'prop-types';

import 'react-day-picker/lib/style.css';

export default class MultiDayPicker extends Component {

  state = {
    selectedDays: []
  };

  handleDayClick = (day, {selected}) => {
    const {selectedDays} = this.state;

    if (selected) {
      const selectedIndex = selectedDays.findIndex(selectedDay =>
        DateUtils.isSameDay(selectedDay, day)
      );

      selectedDays.splice(selectedIndex, 1);
    } else {
      selectedDays.push(day);
    }

    this.setState({selectedDays});
    this.props.input.onChange(selectedDays);
  };

  render() {
    return (
      <div>
        <DayPicker
          selectedDays={this.state.selectedDays}
          onDayClick={this.handleDayClick}
        />
      </div>
    );
  }
}
...