【问题标题】:Receiving input from various actionbuttons in Shiny R从 Shiny R 中的各种操作按钮接收输入
【发布时间】:2014-06-17 09:06:07
【问题描述】:

所以这在某种程度上是对我之前的跟进:Automatic GUI Generating in R Shiny 我发布了如何迭代生成元素的解决方案。

现在我无法接收/检查已按下哪些操作按钮并在按下时执行某些操作。

一般来说,有一个函数会生成按钮并将其发送到ui.R:

output$generateImages <- renderUI({
  (...)
  i <-1
  for(dir in folders){
    (...)
    txt<-paste0("rep",i)
    pp<-pathNameToImage
    LL[[i]] <- list(actionButton(txt,icon=imageOutput(pp,width="100px",height="100px"),label=dir))
    i<-i+1
  }
return(LL)          
  }

在 ui.R 中我有:

uiOutput('generateImages')

它通过将按钮累积到名为“LL”的列表中来很好地显示按钮。

我曾尝试寻找教程和示例,但无法找到如何处理图像,以及如何稍后从不是“手动”创建的按钮接收输入,而是迭代。

如何访问“观察”中的这些按钮以便执行操作?我试过 input$generateImages、input$LL 和其他几个,但它们的值都是 NULL。

【问题讨论】:

    标签: r user-interface shiny shiny-server


    【解决方案1】:

    您需要通过它们的唯一 ID 访问它们。传递给 actionButton 的 first argument 是它的 ID。这就是您需要使用它来获取它作为输入的内容。

    所以:

    LL[[i]] <- list(actionButton("SomeID"))
    

    当你分配它时,然后

    input[["SomeID"]]
    

    当你想引用它时。当然,您可以使用变量而不是硬编码的字符串作为 ID。

    【讨论】:

    • 嘿。这就是我想要做的: if(input[["rep1"]]){ print(2) } 我得到:“ if (input[["rep1"]]) { 中的错误:参数是长度"
    • 知道如何迭代地执行此操作吗?
    猜你喜欢
    • 2019-03-24
    • 2015-11-26
    • 1970-01-01
    • 2018-01-26
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    相关资源
    最近更新 更多