You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo Calendar组件markedDates类型不匹配,日期标记失效求助

解决日历组件日期标记格式不匹配问题

核心问题

PHP接口返回的arrayDados是数组结构,但Calendar组件的markedDates属性要求键为日期字符串、值为配置对象的格式,直接传数组会触发类型错误导致标记失效。

解决方案:数组转对象

用数组的reduce方法把接口返回的数组转换成组件需要的对象格式,示例代码:

// 假设接口返回的数据存在response.data.arrayDados中
const rawData = response.data.arrayDados;
const markedDates = rawData.reduce((result, currentItem) => {
  // 用当前项的data字段作为对象键,dadosDoDia作为对应配置值
  result[currentItem.data] = currentItem.dadosDoDia;
  return result;
}, {}); // 初始化空对象作为累加器

注意事项

  • 确保currentItem.data的日期格式和Calendar组件要求完全一致(比如YYYY-MM-DD),如果格式不匹配,需要先做格式转换(比如用原生Date对象或日期工具处理)。
  • 如果dadosDoDia本身需要调整才能适配组件的配置要求,可在赋值时对其做二次处理(比如添加selected、marked等组件要求的属性)。

内容的提问来源于stack exchange,提问作者Gs Serviços

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 05:22:48