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

R Shiny模块中Submit按钮无法写入数据至Google Sheets问题

问题解决:R Shiny模块中Submit按钮无法写入Google Sheets

核心问题

模块UI中的两个actionButton未使用**命名空间(ns())**包装inputId,导致moduleServer无法识别按钮的点击事件,这是点击Submit无反应的直接原因。Shiny模块内的所有输入控件ID必须通过ns()函数处理,确保server端能正确绑定对应UI元素。

修复步骤

1. 修改模块UI代码

将location和save按钮的inputId用ns()包裹:

test_ui <- function(id) {
  
  ns <- NS(id)
  
  sideBar <- list(
    dateInput(inputId = ns("date"), label = "Date", value = as.Date(Sys.Date())),
    selectInput(inputId = ns("course"), label =  "Course", choices = c("PGH: Vanha Peura", "PGH: Porkkala"), multiple = F),
    selectInput(inputId = ns("hole"), label =  "Hole", choices = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18"), multiple = F),
    selectInput(inputId = ns("shot"), label =  "Shot", choices = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"), multiple = F),
    selectInput(inputId = ns("club"), label = "Club", choices = c("D", "W3", "H3", "i4", "i5", "i6", "i7", "i8", "i9", "PW", "52", "56", "60", "P")),
    selectInput(inputId = ns("lie"), label = "Ball Lie", choices = c("Fairway", "Rough", "Sand", "Recovery", "Fringe", "Green")),
    # 修复:添加ns()包装inputId
    actionButton(inputId = ns("location"), label = "Get Location"),
    textInput(inputId = ns("lat"), label = "Latitude", value = ""),
    textInput(inputId = ns("lon"), label = "Longitude", value = ""),
    sliderInput(inputId = ns("putt_length"), label = "Putt Distance", min = 1, max = 30, value = 5, step = 1),
    # 修复:添加ns()包装inputId
    actionButton(inputId = ns("save"), label = "Submit")
    
  )
  
  page_sidebar(
    sidebar = sidebar(sideBar)
  )
  
}

2. 验证其他逻辑(可选)

  • 确保sheet_id在模块server环境中可访问(当前代码中全局定义的sheet_id可被模块读取,无需额外修改)
  • response_data reactive对象的定义正确,能捕获所有输入值
  • Google Sheets权限配置正常(用户已确认非响应式环境可正常运行,此部分无需调整)

测试验证

修改后重启Shiny应用,输入数据后点击Submit按钮,数据应能正常追加到Google Sheets的"shots"工作表中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:01:34