【问题标题】:r Shiny action button and data table outputr 闪亮的动作按钮和数据表输出
【发布时间】:2018-03-13 06:14:00
【问题描述】:

我想要一个在选择一些简单标准后的输出数据表,一旦点击操作按钮。

代码在没有操作按钮作为输入的情况下工作。只要我包含 observeEvent 函数,就不再生成结果。请参阅下面的示例代码。

注意:删除行 observeEvent(input$gobutton,{ 和相应的 }) 将产生正确的输出。

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)

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    改为将其包装在 eventReactive 中:

    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)
    

    【讨论】:

    • 完美运行。谢谢你。你知道为什么observeEvent 不起作用,而eventReactive 起作用吗?
    • 观察者就像一个响应式表达式,它可以读取响应式值并调用响应式表达式,并在这些依赖关系发生变化时自动重新执行。但与反应式表达式不同的是,它doesn't yield a result 不能用作其他反应式表达式的输入。因此,观察者只对它们的副作用有用(例如,执行 I/O)。 shiny.rstudio.com/reference/shiny/latest/observe.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 2019-07-15
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    相关资源
    最近更新 更多