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

Google Apps Script报错:无法读取undefined的namedValues属性求助

解决Google Apps Script中TypeError: Cannot read property 'namedValues' of undefined的问题

报错原因

你遇到的TypeError是因为函数moveEventToBookedCalendar被手动运行,或者触发器未正确设置。这个函数是为Google表单提交事件设计的,只有当表单有新提交时,Google才会自动传入包含响应数据的事件对象e;如果手动运行函数,e会是undefined,访问e.namedValues自然会报错。

解决步骤

1. 配置表单提交触发器

这是最关键的一步,确保函数在表单提交时自动触发:

  • 打开Google Apps Script编辑器,点击左侧的时钟图标(「触发器」)。
  • 点击「添加触发器」,按以下设置配置:
    • 要运行的函数:moveEventToBookedCalendar
    • 部署类型:Head
    • 事件源:表单提交
    • 事件类型:来自表单的提交
  • 保存触发器,之后用户提交表单时,函数会自动获取到正确的e对象。

2. 手动测试(可选)

如果需要本地测试函数逻辑,可以模拟一个e对象来调用函数:

function testMoveEvent() {
  // 模拟表单提交的事件对象,替换成实际的日期值
  const testE = {
    namedValues: {
      'DateOne': ['2024-05-20T10:00:00']
    }
  };
  moveEventToBookedCalendar(testE);
}

运行testMoveEvent即可测试,测试完成后可移除该函数。

3. 代码优化建议

为了避免后续出现其他异常,给代码增加一些校验逻辑:

const FREE_SLOTS_CALENDAR_ID = "***@group.calendar.google.com"
const BOOKED_SLOTS_CALENDAR_ID = "****@group.calendar.google.com"

function moveEventToBookedCalendar(e) {
  // 校验事件对象和表单数据是否存在
  if (!e || !e.namedValues || !e.namedValues['DateOne']) {
    console.log('无效的表单提交数据');
    return;
  }
  
  // namedValues返回的是数组,取第一个元素作为日期值
  const dateStr = e.namedValues['DateOne'][0];
  var startingTime = new Date(dateStr);
  
  // 校验日期格式是否有效
  if (isNaN(startingTime.getTime())) {
    console.log('日期格式错误');
    return;
  }

  const availableCalendar = CalendarApp.getCalendarById(FREE_SLOTS_CALENDAR_ID);
  const bookedCalendar = CalendarApp.getCalendarById(BOOKED_SLOTS_CALENDAR_ID);
  // 计算结束时间(当前为10小时,可根据需求调整)
  var endingTime = new Date(startingTime.getTime() + 1000 * 60 * 600);
  var events = availableCalendar.getEvents(startingTime, endingTime);
  
  events.forEach(event => {
    event.deleteEvent();
    bookedCalendar.createEvent("Booked slot", startingTime, endingTime);
  });
}
  • 注意e.namedValues['DateOne']是数组类型,需要用[0]提取单个值;
  • 增加了数据校验,避免空值或无效日期导致的报错;
  • 确认结束时间的计算逻辑是否符合你的需求(当前是10小时)。

内容的提问来源于stack exchange,提问作者Lindokuhle Moloi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:56:31