Я создаю приложение с несколькими вкладками, некоторые из которых связаны с чрезмерными вычислениями и другими, которые быстро вычисляются. Флажок, который позволит пользователю выбирать между реактивностью или ручным обновлением в сочетании с кнопкой «Обновить», будет идеальным.Блестящие: разрешайте выбирать реактивность
Простой пример ниже иллюстрирует то, к чему я стремлюсь. Он почти работает, за исключением одного финального обновления, когда флажок «Автоматическое обновление» -checkbox не установлен, что является болью, если должна быть открыта вычислительная интенсивная вкладка. Есть ли способ обойти это?
ui.r
library(shiny)
shinyUI(fluidPage(
titlePanel("Test"),
sidebarLayout(
sidebarPanel(
checkboxInput("autoRefresh", "Automatically refresh", TRUE),
actionButton("refresh", "Refresh!"),
radioButtons("choice", "Choice of value:",
c("10" = 10,
"20" = 20))
),
mainPanel(
tabsetPanel(type = "tabs",
tabPanel("Add random decimals to value", textOutput("value"))
)
)
)
))
server.r
library(shiny)
shinyServer(function(input, output) {
output$value <- renderText({
input$refresh
if(input$autoRefresh == 1) {
input$choice
}
isolate({
output <- runif(1,0,1) + as.numeric(input$choice)
})
})
})
Большое спасибо заранее!
опечатка: Refesh. Что еще более важно, это не работает. Он обновляется, когда флажок не установлен. Это связано с тем, что он не работает так, как вы его объясняете ... инструкция «if» не вводится до тех пор, пока изменение входного параметра $ select не приведет к выполнению всего блока renderText(). – hedgedandlevered
@hedgedandlevered Спасибо! обновил ответ. –
Этот код теперь работает. –