React版fullcalendarjs vertical resource view仅显示最后一个事件求助
问题修复方案
以下是该场景下的必查修复项,按优先级排序:
- 检查所有
event对象的resourceId字段
每个事件必须配置与this.state.resources数组中对应项完全匹配的resourceId,未配置/匹配错误的事件会被默认归集到最后一个资源列,导致看起来仅显示最后一个事件 - 检查所有
event的id字段是否唯一
FullCalendar会默认对相同id的事件执行去重逻辑,仅保留最后一个传入的事件 - 补全合法的
schedulerLicenseKey
你当前配置项中schedulerLicenseKey为空,未激活的scheduler功能会出现随机渲染异常,包括事件不全、功能受限等问题,填入官方授权的license即可恢复正常 - 修正
events状态更新逻辑
React版FullCalendar对events属性做浅比较,如果你是原地修改this.state.events数组(比如用push/splice等方法)后直接setState,组件不会触发全量事件重渲染,只会识别到最后一次修改的事件。需要每次更新都返回全新的数组实例:// 错误写法 const newEvents = this.state.events; newEvents.push(newEvent); this.setState({events: newEvents}); // 正确写法 this.setState(state => ({ events: [...state.events, newEvent] })); - 检查自定义事件渲染逻辑
你配置项注释中标注了自定义渲染函数,如果自定义逻辑中事件节点的key重复,会触发React的diff优化,仅渲染最后一个同key的节点,需要保证每个事件节点的key唯一
内容的提问来源于stack exchange,提问作者Angel Eolas
相关产品推荐
相关产品推荐

