【发布时间】:2017-02-01 16:42:17
【问题描述】:
在 RStudio 中开发时,我成功地使用 global.R 将数据传递给 ui.r 和 server.R。但是,当我将代码迁移到服务器时,ui.R 和 server.R 都无法读取 global.R。我正在使用 Shiny Server(不是专业版)。这可能是什么原因造成的?
我的代码看起来像这样(它不是反应式的)
#global.R
x = 10
#ui.R
print(x)
> 10 #in RStudio viewer
> Error: object 'x' not found #on Shiny Server
根据下面 sigmabeta 的回答,我对 server.R 和 global.R 进行了更改,但是我正在寻找服务器将 x 重置为另一个值,以便 ui.R 可以读取它。这就是我现在的代码
#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
这是ui.R 中的实际代码,我试图根据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
)
)
)
)
)
)
【问题讨论】:
标签: shiny shiny-server shinydashboard