【发布时间】:2017-06-29 21:04:03
【问题描述】:
我希望在 Shiny 中有一组两个操作按钮,其中 inputID 和重复项数基于 data.frame 中的行数。下面附上我的思维过程,目前运行不正确。我不想在按下按钮时添加按钮,而是希望“n”组按钮等于 data.frame 中的行数。
library(shiny)
ui <- basicPage(
fluidRow(
actionButton(inputId = "add_button",
label = "Add Button")
),
uiOutput("more_buttons")
)
server <- function(input, output){
rvs <- reactiveValues(buttons = list(actionButton(inputId = "button1",
label = 1)))
observeEvent(eventExpr = input$add_button,
handlerExpr = {
len <- length(rvs$buttons) + 1
rvs$buttons[[len]] <- actionButton(inputId = paste0("button",len),
label = len)
})
output$more_buttons <- renderUI({
do.call(fluidRow, rvs$buttons)
})
observeEvent(rvs$buttons,{
for(ii in 1:length(rvs$buttons)){
local({
i <- ii
observeEvent(eventExpr = input[[paste0("button",i)]],
handlerExpr = {print(sprintf("You clicked btn number %d",i))})
})
}
})
}
shinyApp(ui, server)
【问题讨论】:
-
您的示例不起作用。好像有不平衡的括号。
-
@GregordeCillia 我添加了一个不同的版本。每次按下“add_button”时都会添加一个按钮,但我想要一对按钮,其中对数等于 data.frame 中的行数
-
数据框是否反应?