gpt4 book ai didi

reactjs - Material DateTimePicker onChange Typescript 不匹配错误

转载 作者:行者123 更新时间:2023-12-04 00:00:39 27 4
gpt4 key购买 nike

我有以下 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com