Я не могу сохранить значение компонента DatePicker внутри моего класса формы - PullRequest
0 голосов
/ 02 июля 2019

Я новичок в приложенияхact.js, и у меня есть компонент DatePicker внутри моего класса форм. Я пытаюсь обновить и сохранить выбранную дату с помощью handleChange, но я не знаю, каково значение datepicker, и я не уверен, как это сделать. сделайте это, так как я импортировал его как компонент. Извините, если я не смог объяснить это очень хорошо, я новичок в приложениях реагирования

   constructor() {
    super();
 this.state = {

      formData: {
    //i have other states here but this is the one i am having trouble with 
    //updating data
         bookTime: {
          data: "",
          name: "bookTime",
          category: "DatePicker",
          everFocused: false,
          isValid: true,
          startDate: new Date(),
          extra : {
            label:"Randevu Tarihi*",
            help: "Geçersiz Alan!"
          }
       },
     }
   };
 this.handleChange = this.handleChange.bind(this);
}

Код этого класса формы не мой, но я пытаюсь добавить в него указатель даты и стараюсь не менять слишком много вещей, так как это не мой код Метод handleChange не принадлежит мне, и это почему я пытаюсь обновить свои данные с использованием этого формата.

handleChange(e) {
    let val = e.target.value;
    console.log(e.target.value)
    let name = e.target.name;
    let category = e.target.getAttribute("category");
    let startDate = e.target.getAttribute("category");

    this.setState(prevState => ({
      formData: changeHandler(prevState.formData, val, name, category,startDate)
    }));
  }

это метод changeHandler;

export const changeHandler = (data, val, name, category) =>{
 // Update the field value and get the field to validate (and name of that field)
  Object.keys(data).forEach((key, idx) =>{
     if (key === name) {
       data[key].data = val;
         return; 
       } 
    }); 
return findAndValidateField(data, name, category); 
};

Этот div находится внутри моего класса формы, я не объявил className, потому что я не знаю, на что именно он влияет

 <div
                  className={"" + (bookTime.isValid ? "" : " is-danger")}
                >
                <div>
                 <DatePicker className="turkish"
                   locale={tr}
                   selected={bookTime.startDate}
                   onChangeRaw={this.handleDateChangeRaw}
                   showTimeSelect
                   minTime={setHours(setMinutes(new Date(), 0), 7)}
                   maxTime={setHours(setMinutes(new Date(), 0), 22)}
                   minDate={subDays(new Date(), 0)}
                   timeFormat="HH:mm"
                   timeIntervals={60}
                   dateFormat="HH:mm,d MMMM yyyy"
                   timeCaption="Saat"


                   name={bookTime.name}
                   category = {bookTime.category}
                   onBlur={this.handleBlur}
                   onChange={this.handleChange}

                  />
                  </div>

Я хочу, чтобы значение datedicker selecteddate обновлялось и сохранялось как другие состояния формы в форме

...