Material UI Jalali日历日期选择器error prop类型报错求助
解决MUI Jalali日期选择器Error属性类型错误问题
问题根源
你遇到的报错是因为MobileDatePicker传递给renderInput的params参数中,自带的error属性是对象类型(而非布尔值)。当你直接展开{...params}时,这个对象会被传递给TextField,进而传入其内部的InputBase组件,违反了InputBase要求error为布尔值的类型约束。而普通TextField使用时没有这种外部传入的对象类型error,因此可以正常运行。
解决方案
解构params时排除掉自带的error属性,再手动传入你需要的布尔值校验结果:
<LocalizationProvider dateAdapter={AdapterJalali}> <MobileDatePicker label={label} value={value} onChange={(newValue) => { setValue(newValue); onChange({ label: new Intl.DateTimeFormat("fa-u-ca-persian-nu-latn", { dateStyle: "short", }).format(newValue), }); }} renderInput={({ error: _, ...restParams }) => ( <TextField color="colorPrimer" {...restParams} fullWidth sx={{ marginBlock: "1em" }} error={!!(errors && errors[name])} helperText={errors && errors[name] ? `فیلد ${label} را پرکنید` : ""} /> )} /> </LocalizationProvider>
说明
- 通过
{ error: _, ...restParams }解构params,将自带的对象类型error丢弃,只保留其他有用参数。 !!(errors && errors[name])确保最终传递给TextField的error是严格布尔值,符合组件要求。
内容的提问来源于stack exchange,提问作者sadsad
相关产品推荐
相关产品推荐

