0

所以这在某种程度上是我之前的后续:在 R Shiny 中自动生成 GUI,我发布了如何迭代生成元素的解决方案。

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

一般来说,有一个函数可以生成按钮并将其发送到 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.RI 中有:

uiOutput('generateImages')

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

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

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

4

1 回答 1

0

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

所以:

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

当你分配它时,然后

input[["SomeID"]]

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

于 2014-04-30T22:17:24.483 回答