reactjs - Material DateTimePicker onChange Typescript 不匹配错误

标签 reactjs typescript material-ui

我有以下 React + Material DatePicker 代码,逐字复制 from the respective documentation .

let App: React.FC = () => {

const [dateStart, handleDateStart] = useState(new Date());
const [dateEnd, handleDateEnd] = useState(new Date());

return (
    // Pickers from Material https://material-ui-pickers.dev/getting-started/usage
    <MuiPickersUtilsProvider utils={DateFnsUtils}>
        <DateTimePicker value={dateStart} onChange={handleDateStart}/>
        <DateTimePicker value={dateEnd} onChange={handleDateEnd}/>)
    </MuiPickersUtilsProvider>);

};

但是,我用 TypeScript 编写,它在 上提示onChange 位:
Error:(28, 47) TS2322: Type 'Dispatch<SetStateAction<Date>>' is not assignable to type '(date: MaterialUiPickersDate) => void'.
Types of parameters 'value' and 'date' are incompatible.
 Type 'MaterialUiPickersDate' is not assignable to type 'SetStateAction<Date>'.
 Type 'null' is not assignable to type 'SetStateAction<Date>'.

配置:
{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react"
  },
  "include": [
    "src"
  ]
}

我是 React 和 Material 的新手,我该如何避免这个错误?

最佳答案

问题是日期选择器可以返回 null以及(如果值为空)

工作示例:

const [date, setDate] = React.useState<Date | null>(new Date());

return (
  <DatePicker
    value={date} 
    onChange={newDate => setDate(newDate)} 
  />
)

关于reactjs - Material DateTimePicker onChange Typescript 不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62452160/

相关文章:

reactjs - Material-UI AutoComplete 表单中的 freeSolo

typescript 检查对象是否匹配类型

javascript - 如何将 JS 字符串数组转换为与 io-ts 的联合?

javascript - Material ui 表行复选框不显示

javascript - 本地主机上的 Facebook 登录 - 连接不安全

javascript - Mocha : Is there a scenario where a before hook would run after a test?

css - 使 Material UI 抽屉保持相同大小,而不是在内容大小更改时调整大小

javascript - 如何使用 React 创建多页面应用程序?

javascript - React 功能组件中的 props 没有从父组件传递到子组件

javascript - 状态不改回来