Как исправить, что дата [] не может быть назначена типу [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, используя переменную входного значения