Мне нужно показать progress bar
внутри моего блестящего приложения.
Я использую пакет shinyWidgets
и использую функцию updateProgressBar
.
Проблема в том, чтоЯ использую его внутри function
, и получаю это сообщение об ошибке:
Warning: Error in shinyWidgets::updateProgressBar: object 'session' not found
[No stack trace available]
Когда я использую его вне функции (непосредственно в приложении), оно работает.
Какобойти это? Ниже приведен пример того, как он работает
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
actionBttn("load","Load"),
progressBar(id = "loading_bar",0)
)
server <- function(input, output, session) {
observeEvent(input$load, {
updateProgressBar(session=session,
id = "loading_bar",
value=100)
})
}
shinyApp(ui, server)
, а тот, на котором я работаю, выглядит следующим образом:
library(shiny)
library(shinyWidgets)
source("my_download_function.R",local=TRUE)
ui <- fluidPage(
actionBttn("load","Load"),
progressBar(id = "loading_bar",0)
)
server <- function(input, output, session) {
observeEvent(input$load, {
df <- my_download_function("download")
})
}
shinyApp(ui, server)
проблема в том, что часть кода, которая обновляет панель
updateProgressBar(session=session,
id = "loading_bar",
value=100)
находится внутри функции, и его не найти снаружи.
У меня были похожие проблемы с объектами, и я использовал <<-
, чтобы он мог определить его глобально. Есть идеи, что я делаю не так?