【问题标题】:R shiny: different behaviours of observeEvent and eventReactiveR闪亮:observeEvent和eventReactive的不同行为
【发布时间】:2020-12-04 05:40:47
【问题描述】:

下面闪亮的应用程序显示了一个使用rhandsontable() 构建的可编辑表格。

问题:您能解释一下为什么每当对数据表进行编辑时,控制台就会打印"ping",而从不打印"pong"

library(shiny)

ui <- fluidPage(
  rhandsontable::rHandsontableOutput(
    outputId = "data")
)

server <- function(input, output, session) {
  
  data <- data.frame(a = 1, b = 2, c = 3)
  
  output$data <- rhandsontable::renderRHandsontable({
    rhandsontable::rhandsontable(
      selectCallback = TRUE,
      data = data)
  })
  
  observeEvent(input$data$changes$changes, {
    print("ping")
  })
  
  edits <- eventReactive(input$data$changes$changes, {
    print("pong")
  })
  
}

shinyApp(ui = ui, server = server)

【问题讨论】:

    标签: r shiny reactive handsontable rhandsontable


    【解决方案1】:

    这是因为 edits() 此后没有被调用,所以 shiny 认为你不需要它,因此没有理由对其进行任何工作,你需要添加它应该去的地方或你想要做的事情用它:

    library(shiny)
    
    ui <- fluidPage(
        rhandsontable::rHandsontableOutput(
            outputId = "data")
    )
    
    server <- function(input, output, session) {
        
        data <- data.frame(a = 1, b = 2, c = 3)
        
        output$data <- rhandsontable::renderRHandsontable({
            rhandsontable::rhandsontable(
                selectCallback = TRUE,
                data = data)
        })
        
        observeEvent(input$data$changes$changes, {
            print("ping")
        })
        
        edits <- eventReactive(input$data$changes$changes, {
            print("pong")
        })
        
        observe({
            edits()
        })
        
    }
    
    shinyApp(ui = ui, server = server)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      相关资源
      最近更新 更多