【发布时间】:2019-04-02 06:07:19
【问题描述】:
如果我向 get_data() 反应表达式添加去抖动,则第一次检索数据时,绘图不会呈现。但是,更改数据(通过选择新的 mpg)会导致绘图随后呈现。为什么是这样?有解决方法吗?
这是一个简单的最小示例来演示该问题。尝试删除 %>% debounce(500) 以查看它在没有它的情况下是否按预期工作:
if (interactive()) {
options(device.ask.default = FALSE)
library(shiny)
library(magrittr)
ui <- fluidPage(
selectInput("select", label = "select mpg", choices = c(mtcars$mpg, ""), selected = ""),
plotOutput("plot")
)
server <- function(input, output, session) {
get_data <- reactive({
req(input$select)
mtcars[mtcars$mpg == input$select,]
}) %>% debounce(500)
get_plot <- reactive({
data <- get_data()
print(data)
plot(get_data())
})
output$plot <- renderPlot({
get_plot()
})
}
shinyApp(ui, server)
}
【问题讨论】: