最近,我遇到了一个问题,devextreme-react date-box无法使用
onValueChanged
函数更改其值,并且返回以下错误:
Uncaught TypeError: t.getFullYear is not a function
at w (dx.all.js:19:2246625)
at x (dx.all.js:19:2246540)
at Object.sameDate (dx.all.js:19:2249338)
at t._valueChangedHandler (dx.all.js:19:1580825)
at Object.execute (dx.all.js:19:2166269)
at l._executeAction (dx.all.js:19:2165470)
at l.execute (dx.all.js:19:2165081)
at t.<anonymous> (dx.all.js:19:2173158)
at t.l [as _valueChangeAction] (dx.all.js:19:2173871)
at t._raiseValueChangeAction (dx.all.js:31:453687)
这是我用它测试的示例代码:
function App() {
const [dateValue, setDateValue] = useState<string>("");
const onDateValueChanged = (e: ValueChangedEvent) => {
setDateValue(e.value);
}
return (
<div>
<Datebox
type="datetime"
dateSerializationFormat="yyyy-MM-dd HH:mm:ss"
displayFormat="yyyy-MM-dd HH:mm:ss"
isRequired={true}
isDisabled={false}
isReadonly={false}
value={dateValue}
onValueChanged={onDateValueChanged}
max={new Date()}
/>
</div>
);
}
我尝试检查文档。您可以执行以下更改并查看它是否有效,而不是将新日期视为
string
?
Date
对象而不是字符串。const [dateValue, setDateValue] = useState(new Date(1981, 3, 27));
onDateValueChanged
回调: const onDateValueChanged = useCallback((e: DateBoxTypes.ValueChangedEvent) => {
setDateValue(e.value);
}, []);
希望这有帮助。