我想在我闪亮的应用程序中添加一个复选框(input$autorefresh)来控制我的数据输入在每次更改时自动更新(=reactive())的位置,还是只在按下按钮(=input$refresh)时才更新。这个想法在下面的代码中得到了描述,但我并没有想到它会起作用。我可以将reactive()与条件isolate()一起使用,但由于我有很多输入,这并不是很优雅。有什么想法吗?
if (input$autorefresh==TRUE){
dataInput <- reactive({
dosomething
})
} else {
dataInput <- eventReactive(input$refresh,{
dosomething
})
}发布于 2018-06-25 18:07:58
你在找这样的东西吗?
library(shiny)
ui <- fluidPage(
checkboxInput("autorefresh","autorefresh", F),
actionButton("refresh","refresh"),
mainPanel(plotOutput("plot"))
)
autoInvalidate <- reactiveTimer(1000)
server <- function(input, output, session) {
data <- reactive({
input$refresh
data <- plot(rnorm(100),type="l",col="red")
if(input$autorefresh){
autoInvalidate()
return(data)
}
return(data)
})
output$plot <- renderPlot({
data()
})
}
runApp(shinyApp(ui = ui, server = server))

https://stackoverflow.com/questions/51020614
复制相似问题