2017-03-23 6 views
1

Ich habe einen Timer als reaktive Werte eingerichtet. Werte $ total. Es wurde entwickelt, um bis zum 2017-03-22 23:55:40 Countdown zu laufen, und wenn der Wert $ total auf Null herunter gezählt wird, soll er tally zu values2 $ total hinzufügen. Wenn ich eine App starte, werden die Werte $ total eingefroren und bewegen sich nicht. Wie kann ich es herunterzählen?Glänzende App reagiert, wenn der Timer auf 0 herunter zählt

library(shiny) 
library(lubridate) 

ui <- fluidPage(
    "Total:", 
    textOutput("total", inline = TRUE), 
    "Draft Count:", 
    textOutput("draft_count", inline = TRUE), 
    "Time:", 
    textOutput("time",inline=TRUE) 
) 

server <- function(input, output, session) { 
    values <- reactiveValues(total = as.numeric(as.POSIXct("2017-03-22 23:55:40")-now(),units="secs")) 
    values2 <- reactiveValues(total = 0) 

    observeEvent(values$total <= 0,{ 
    values2$total <- values2$total + 1 
    }) 

    output$total <- renderText({ 
    invalidateLater(1000,session) 
    values$total 
    }) 

    output$draft_count <- renderText({ 
    invalidateLater(1000,session) 
    values2$total 
    }) 

    output$time <- renderText({ 
    invalidateLater(1000,session) 
    as.character(as.POSIXct(now())) 
    }) 
} 

shinyApp(ui = ui, server = server) 

Antwort

0

Ich denke, das ist, was Sie wollen:

server <- function(input, output, session) { 
#values <- reactiveValues(total = as.numeric(as.POSIXct("2017-03-22 23:55:40")-now(),units="secs")) 
    val <- reactive({ 
    invalidateLater(1000,session) 
    <- as.numeric(as.POSIXct("2017-03-22 23:55:40")-now(),units="secs") 
    }) 
    values2 <- reactiveValues(total = 0) 

    observeEvent(values$total <= 0,{ 
    values2$total <- values2$total + 1 
    }) 

    output$total <- renderText({ 
    invalidateLater(1000,session) 
    val() 
    }) 

    output$draft_count <- renderText({ 
    invalidateLater(1000,session) 
    values2$total 
    }) 

    output$time <- renderText({ 
    invalidateLater(1000,session) 
    as.character(as.POSIXct(now())) 
    }) 
} 
Verwandte Themen