I would like an output data table after selection of some simple criteria, once an action button is clicked.
The code works without the action button as an input. As soon as I include the observeEvent
function, the result is no longer generated. See example code below.
Note: Removing the line observeEvent(input$gobutton,{
and the corresponding })
will produce the correct output.
library(shiny)
ui <- fluidPage(
fluidRow(column(6,div(checkboxGroupInput("test1", "Testing buttons",
choices=c("A","B","C"),
selected=c("A","B","C"))))),
hr(),
actionButton("gobutton","Start"),
dataTableOutput("summary_table")
)
server <- function(input,output){
output$summary_table <- renderDataTable({
observeEvent(input$gobutton,{
df=data.frame(col1=input$test1,col2=seq(1,length(input$test1),1))
df
})
})
}
shinyApp(ui=ui, server=server)
Wrap it in a eventReactive
instead:
library(shiny)
ui <- fluidPage(
fluidRow(column(6,div(checkboxGroupInput("test1", "Testing buttons",
choices=c("A","B","C"),
selected=c("A","B","C"))))),
hr(),
actionButton("gobutton","Start"),
dataTableOutput("summary_table")
)
server <- function(input,output){
data <- eventReactive(input$gobutton,{
if(is.null(input$test1)){
return()
}
df <- data.frame(col1=input$test1,col2=seq(1,length(input$test1),1))
df
})
output$summary_table <- renderDataTable({
data()
})
}
shinyApp(ui=ui, server=server)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With