У меня есть блестящее приложение, в котором изменения selectInputs запускают оба обновления для других выбирает И запускают обновление сюжета. Есть ситуации, к сожалению, когда изменение выбора вызывает сюжет для повторного рисования, тогда он обновляет другой выбор, и сюжет рисует второй раз. Поэтому я получаю многократное повторное рисование. Мое блестящее приложение более сложное, чем одно, но я переусердствовал.Предотвращение двойного розыгрыша в блестящем приложении при выборе смены
Я хочу изменить сюжет, когда пользователь меняет страну, год или заголовок. Но когда пользователь изменяет страну, он также может автоматически обновлять год автоматически, и это может привести к обновлению сюжета, связанного с страной, а затем повторной розыгрыш, связанный с годом.
Есть ли способ разрешить кратковременную задержку, возможно, для блестящей, чтобы «догнать» и не заставить оба реактора вызвать заговор? Или, возможно, есть другие варианты?
library(shiny)
server <- function(input, output, session) {
output$plot <- renderPlot({
Sys.sleep(0.2)
plot(1:10, main=input$title)
rect(par("usr")[1], par("usr")[3], par("usr")[2], par("usr")[4], col = sample(colors() ,1))
})
observeEvent(input$country, {
vals <- switch(input$country,
US = 2001:2003,
UK = 2001:2005,
FR = 2002:2006)
updateSelectInput(session, "year", choices = vals, selected = vals[1])
})
observeEvent(c(input$country, input$year), {
updateNumericInput(session, "title",
value = paste(input$country, input$year))
})
}
ui <- fluidPage(
tags$div(class="panel-body",
selectInput("country", "country", choices = c("US", "UK", "FR"), selected = "US"),
textInput("title", "Give a title", "This is my initital title"),
selectInput("year", "year", choices = NULL, selected = NULL)
),
plotOutput("plot")
)
shinyApp(ui = ui, server = server)
Смотрите мой ответ здесь: http://stackoverflow.com/questions/33806811/shiny-evaluates-twice/33842753#33842753 – BigDataScientist
изолят не работает в этом контексте, потому что я хотите, чтобы в некоторых случаях реактор вызывал ответ. – ZRoss