Если для autoFocus задано значение true, для значения выбранной даты установлено значение null, а для ее обновления в методе componentDidUpdate выделены две даты. - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь установить автофокус на компонент DatePicker. Я установил начальное значение на текущую дату в состоянии и сослался на это в выбранном свойстве, например. selected={this.state.selectedDate}. Теперь я устанавливаю новое значение для selectedDate в componentDidUpdate, как this.setState({selectedDate: newDate}). Это приводит к тому, что DatePicker выделяет две даты (одна устанавливается в исходное состояние, а другая - в методе componentDidUpdate). Добавлен исходный код и вывод ниже. Есть ли способ отключить подсветку, когда другая дата уже выбрана. Вот ссылка на редактор стекаблиц https://stackblitz.com/edit/react-datepicker-ikc7os

import React, { Component } from 'react';
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";

export default class DatepickerDemo extends Component {

  constructor() {
    this.state = {
      selectedDate: null
    }
  }

  componentDidMount() {
    this.curDate = new Date()
    this.setState({
      selectedDate: this.curDate.setDate(this.curDate.getDate() +2)
    })
  }

  handleChange = (date) => {
    this.setState({ selectedDate: date });

  }
  render() {
    console.log("state", this.state);
    return (
      <div>
        <DatePicker
          selected={this.state.selectedDate}
          onChange={this.handleChange}
          autoFocus
        />
      </div>
    )
  }

enter image description here

...