将函数连接到 R Shiny Dashboard 中的 actionButton

Posted

技术标签:

【中文标题】将函数连接到 R Shiny Dashboard 中的 actionButton【英文标题】:Connect a function to actionButton in R Shiny Dashboard 【发布时间】:2021-09-17 04:48:22 【问题描述】:

我的一个模块中有一个带有 actionButton 的闪亮仪表板

actionButton("runbutton", "Run Test Now")

我必须这样设计它,当用户点击按钮时,该按钮将调用我创建的函数

test_run <- function()
  library(httr)
  headers = c(
    `Accept` = 'application/vnd.github.v3+json',
    `Authorization` = 'GITHUB_PAT_TOKEN'
  )
  
  data = '"ref":"main"'
  httr::POST(url = 'https://api.github.com/repos/USER/REPO)/actions/workflows/ID/dispatches', httr::add_headers(.headers=headers), body = data)


当用户点击按钮时,有什么方法可以调用 test_run() 吗? 我尝试使用 onclick 实现,但没有成功。

【问题讨论】:

【参考方案1】:

我对@9​​87654321@s 使用的技术是observeEvent。将这样的内容添加到您的 server:

observeEvent(input$runbutton,
   test_run()
)

这将在用户单击按钮时调用您创建的函数。还有其他方法,例如使用?observe?req

【讨论】:

是的,我也尝试过使用observeEvent,但问题是当我使用 run_dev.R 文件 golem 启动仪表板时,该函数会自动调用,但是当我点击按钮。 你在代码中哪里定义你的函数? server? 是的! actionButtonui 中,observeEventserver 中。 哦,我的意思是你的test_run()函数在哪里 一开始是在服务器文件里,后来我把它移到了R文件夹内的一个单独的R文件中。

以上是关于将函数连接到 R Shiny Dashboard 中的 actionButton的主要内容,如果未能解决你的问题,请参考以下文章

源功能不起作用 - Shiny Dashboard

连接到 Jet/ACE 数据库的 Ubuntu Shiny 服务器

让日文字符在 R Shiny 中显示

Shiny:Shiny Dashboard (sidebarMenu) 中的 renderMenu 和 observeEvent 冲突

如何更改 Shiny Dashboard 中固定控制栏的颜色

在 iOS 中添加了 Google Crashlytics - 未连接到 Firebase Crashlytics Dashboard