Javascript 键入脚本键入React
我有以下内容,我正在学习打字Javascript 键入脚本键入React,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我有以下内容,我正在学习打字 interface Props { contentHeight: number, dayRender( date: Date, el: HTMLElement, view: object ): void, ... dayRender是我使用的插件的自定义函数: 和一个类似的组件: export class CalendarComponent extends Component<Props> { ...
interface Props {
contentHeight: number,
dayRender(
date: Date,
el: HTMLElement,
view: object
): void,
...
dayRender是我使用的插件的自定义函数:
和一个类似的组件:
export class CalendarComponent extends Component<Props> {
...
disableSaturday = ( slots: Array<{date: Date}> ) => {
for(let i = 0; i < slots.length; i += 1) {
if (getDay(slots[i].date) === Day.Sunday) {
console.log(`it's saturday`)
}
}
}
render() {
const {
contentHeight,
dateClick,
defaultView,
displayEventTime,
header,
selectedAvailablity: { endDate, slots, startDate },
selectedDate
} = this.props
this.goToDate(selectedDate)
return (
<Fragment>
<FullCalendar
contentHeight={contentHeight}
// dayRender={'sth on day render'}
dateClick={dateClick}
defaultView={defaultView}
displayEventTime={displayEventTime}
events={slots}
dayRender={this.disableSaturday}
firstDay={Day.Monday}
header={header}
now={selectedDate}
plugins={[dayGridPlugin, interactionPlugin]}
ref={this.calendarRef}
validRange={{
start: startDate,
end: endDate,
}}
/>
</Fragment>
...
导出类CalendarComponent扩展组件{
...
disableSaturday=(插槽:阵列)=>{
对于(设i=0;i
我已经更新了道具接口并更新了dayRender的类型,但是我得到了一个类型错误:
您的
this.disableSaturday
功能与dayRender
期望的功能不兼容:
daydrender
希望收到一个带有以下道具的函数{view:view;date:date;allDay?:boolean | undefined;el:HTMLElement;}
。但是您给了它这个。disableSaturday
想要{date date}[]
作为道具。daydrender
无法使用它,因为daydrender
只能提供1个{date:date}
对象,而不是它们的数组
要解决此问题,您只需执行以下操作:
dayRender(({ date }) => this.disableSaturday([date]))
第一个日期从dayRender(destructuring)获取日期变量
第二部分提供了一个数组,用于disableSaturday
,其中包含1date
变量