Как исправить, что дата [] не может быть назначена типу [date?, date?] В обработчике реакции

Я пытаюсь установить дату в диапазоне дат, но есть ошибка, которая

      Type 'Date[]' is not assignable to type '[Date?, Date?]'.

Types of property 'length' are incompatible.

Type 'number' is not assignable to type '0 | 1 | 2'

код:

      const [ dateRange, setDateRange] = useState([new Date('2017-02-01'), new Date('2017-05-20')]);
<DateRangePicker
                    value={dateRange}
                    onChange={value => {
                        this.setState({ value });
                        console.log(value);
                    }} />

2 ответа

Решение

Правильный способ - импортировать тип значения из rsuite

      import {ValueType} from "rsuite/lib/DateRangePicker";

Затем определите его в своем useState

      const [ dateRange, setDateRange] = useState<ValueType>([new Date('2017-02-01'), new Date('2017-05-20')])

<DateRangePicker
    value={dateRange}
    onChange={value => {
    setDateRange(value);
    }}
/>      

Самый простой, но не «правильный» способ просто наложить гипс

      this.setState({ value: value as [Date?, Date?]});

или же

      onChange={value:[Date, Date] => {

Лучше создать [Date?, Date?] переменная внутри вашей функции onChange, используя переменную входного значения

Другие вопросы по тегам