如何修复日期 [] 不可分配到类型 [日期?,日期?] 在反应钩子中

问题描述

我想要做的是在日期范围内设置一个日期,但有一个错误

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);
                    }} />

解决方法

最简单但不“正确”的方法只是制作演员

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

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

最好使用输入值变量在 onChange 函数中创建 [Date?,Date?] 变量

,

正确的方法是从 rsuite 中导入 valuetype

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);
    }}
/>      

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...