【发布时间】:2020-08-30 02:59:52
【问题描述】:
我正在尝试按照文档上的代码设置材料 ui 日期范围选择器示例,但它给了我一个错误,TypeError: undefined is not a function。
我以前从未见过 useState 后跟组件,这就是引发错误的原因。
React.useState<DateRange>([null, null])
https://dev.material-ui-pickers.dev/demo/daterangepicker
完整代码:
import * as React from "react";
import { TextField } from "@material-ui/core";
import { DateRangePicker, DateRange, DateRangeDelimiter } from "@material-ui/pickers";
function BasicDateRangePicker() {
const [selectedDate, handleDateChange] = React.useState<DateRange>([null, null]);
return (
<DateRangePicker
startText="Check-in"
endText="Check-out"
value={selectedDate}
onChange={date => handleDateChange(date)}
renderInput={(startProps, endProps) => (
<>
<TextField {...startProps} />
<DateRangeDelimiter> to </DateRangeDelimiter>
<TextField {...endProps} />
</>
)}
/>
);
}
export default BasicDateRangePicker;
【问题讨论】:
-
我意识到错误是使用 TypeScript 造成的,但我不是,有没有简单的方法可以将它转换为非 TypeScript?
-
只需在 ``React.useState` 之后删除
<DateRange>。 -
这样做会产生一个不同的错误“ React.createElement: type is invalid -- 期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:未定义。你可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认和命名导入“
-
该示例适用于 v4。你在用
v4.0.0-alpha.7吗?还是您使用的是 v3? -
我正在使用 v4.0.0-alpha.7
标签: reactjs material-ui