Google Apps Script用React Hooks开发Sheets侧边栏报错但功能正常问题
错误原因
报错是由你写在SideBar组件顶部的这行日志代码触发的:
console.log(`serverFunctions: ${JSON.stringify(serverFunctions)}`)
你使用的gas-client库导出的serverFunctions本质是一个Proxy代理对象,它对所有属性访问做了统一拦截:所有被访问的属性名都会被当作要调用的Google Apps Script服务端函数名,传入handleRequest方法处理。
而JSON.stringify执行序列化操作时,会自动尝试访问目标对象的toJSON、Symbol.toStringTag等内置属性,这些属性名对应的服务端函数并未暴露,自然就会抛出serverFunctions[functionName] is not a function的错误。
你正常调用getActiveRangeA1时,因为这个函数确实在服务端做了全局挂载,所以可以正常执行拿到结果,这就是功能完全符合预期但控制台仍然报错的核心原因。
解决方案
直接删除上述用JSON.stringify打印serverFunctions的日志代码即可,不需要修改其他业务逻辑,报错就会消失。
内容的提问来源于stack exchange,提问作者Juuso Nykänen
相关产品推荐
相关产品推荐

