如何使用devextreme Datebox解决getFullYear()函数的TypeError?

问题描述 投票:0回答:1

最近,我遇到了一个问题,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>
  );
}
reactjs typescript devextreme devextreme-react
1个回答
0
投票

我尝试检查文档。您可以执行以下更改并查看它是否有效,而不是将新日期视为

string

  1. 首先,更改状态以使用
    Date
    对象而不是字符串。
const [dateValue, setDateValue] = useState(new Date(1981, 3, 27));
  1. 更新
    onDateValueChanged
    回调:
  const onDateValueChanged = useCallback((e: DateBoxTypes.ValueChangedEvent) => {
    setDateValue(e.value);
  }, []);

希望这有帮助。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.