R:观察事件和反应事件的不同行为

R:观察事件和反应事件的不同行为,r,shiny,reactive,handsontable,rhandsontable,R,Shiny,Reactive,Handsontable,Rhandsontable,下面闪亮的应用程序显示了一个使用rhandsontable()构建的可编辑表格 问题:您能解释一下为什么每当对数据表进行编辑时,会将“ping”打印到控制台,而从不打印“pong” library(shiny) ui <- fluidPage( rhandsontable::rHandsontableOutput( outputId = "data") ) server <- function(input, output, session) {

下面闪亮的应用程序显示了一个使用
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)
库(闪亮)
ui这是因为此后不会调用
edits()
,因此
shinny
认为您不需要它,因此没有理由对它进行任何操作,您需要添加它应该放在哪里或想用它做什么:

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)
库(闪亮)
ui这是因为此后不会调用
edits()
,因此
shinny
认为您不需要它,因此没有理由对它进行任何操作,您需要添加它应该放在哪里或想用它做什么:

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)
库(闪亮)
用户界面