J'ai réussi à utiliser global.R pour passer des données à ui.r et server.R en développant dans RStudio. Cependant, lorsque je migre mon code vers le serveur, ni ui.R ni server.R ne sont capables de lire global.R. J'utilise Shiny Server (pas pro). Quelle pourrait être la cause de ce problème ?
Mon code ressemble à ceci (il n'est pas réactif)
#global.R
x = 10
#ui.R
print(x)
> 10 #in RStudio viewer
> Error: object 'x' not found #on Shiny Server
Suite à la réponse de sigmabeta ci-dessous, j'ai apporté des modifications à server.R
y global.R
Cependant, je cherche à ce que le serveur réinitialise x à une autre valeur afin qu'il puisse être lu par ui.R
. Voici ce que mon code est maintenant
#global.R
x = 10
get_x_value <- function (n) {
x = n+1
return x
}
#server.R
source("./global.R")
shinyServer(function(input, output) {
values <- reactiveValues()
observe ({
values$x <- get_x_value(5)
})
})
#ui.R
print(x)
> 6 #in RStudio viewer
> 10 #on Shiny Server
Voici le code actuel dans ui.R
où j'essaie de définir l'état de la boîte sur la base des valeurs déjà calculées dans server.R
library(shinydashboard)
dashboardPage(
Header = dashboardHeader(title = 'Test'),
Sidebar = dashboardSidebar
(
sidebarMenu
(
menuItem("ABC", tabName = "ABC")
)
),
Body = dashboardBody
(tabItems
(
tabItem(
tabName = "ABC",
fluidRow
(
box
(
status = if (x==6) "info" else "danger" ,
solidHeader = TRUE
)
)
)
)
)
)