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