1
numericInputからアクションボタンを生成する光沢のあるコードがあり、observeEventを使用してクリックするとプロットが生成されます。問題は、動的に生成されたボタンでイベントをトリガする方法がわからないことです。私が使用した回避策は、各ボタンのobserveEventを作成することでしたが、私が作成したobserEventsより多くのボタンを生成すると、動作しません。Shiny - 動的に生成されたボタンがイベントのトリガーとして機能することができます
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Dynamic selectInput"),
dashboardSidebar(
sidebarMenu(
menuItemOutput("menuitem")
)
),
dashboardBody(
numericInput("go_btns_quant","Number of GO buttons",value = 1,min = 1,max = 10),
uiOutput("go_buttons"),
plotOutput("plot")
)
)
server <- function(input, output, session) {
output$menuitem <- renderMenu({
menuItem("Menu item", icon = icon("calendar"))
})
output$go_buttons <- renderUI({
buttons <- as.list(1:input$go_btns_quant)
buttons <- lapply(buttons, function(i)
fluidRow(
actionButton(paste0("go_btn",i),paste("Go",i))
)
)
})
#Can this observeEvents be triggerd dynamicly?
observeEvent(input[[paste0("go_btn",1)]],{output$plot <-renderPlot({hist(rnorm(100,4,1),breaks = 10)})})
observeEvent(input[[paste0("go_btn",2)]],{output$plot <- renderPlot({hist(rnorm(100,4,1),breaks = 50)})})
observeEvent(input[[paste0("go_btn",3)]],{output$plot <- renderPlot({hist(rnorm(100,4,1),breaks = 100)})})
observeEvent(input[[paste0("go_btn",4)]],{output$plot <- renderPlot({hist(rnorm(100,4,1),breaks = 200)})})
observeEvent(input[[paste0("go_btn",5)]],{output$plot <- renderPlot({hist(rnorm(100,4,1),breaks = 500)})})
}
shinyApp(ui, server)
ありがとう、ありがとう! 複数のobservEventを持つ代わりに、生成された入力[[]]によってトリガされるobserve()を持たせたいのですが? – user3116408
それは面白い質問のように見えますが、私はそれを解決する方法のいくつかのアイデアを持っています。新しい質問を開くことができます。 – Geovany
さて、新しい質問はこちらhttp://stackoverflow.com/questions/40631788/shiny-observe-triggered-by-dynamicaly-generated-inputs – user3116408