shinydashboard ui.R和server.R未读取全局.R
在RStudio中开发时,我成功地使用global.R将数据传递给ui.R和server.R。然而,当我将代码迁移到服务器时,ui.R和server.R都不能读取global.R。我使用的是闪亮服务器(不是专业版)。这可能是什么原因造成的 我的代码看起来像这样(它不是被动的) 根据sigmabeta下面的回答,我对shinydashboard ui.R和server.R未读取全局.R,shiny,shiny-server,shinydashboard,Shiny,Shiny Server,Shinydashboard,在RStudio中开发时,我成功地使用global.R将数据传递给ui.R和server.R。然而,当我将代码迁移到服务器时,ui.R和server.R都不能读取global.R。我使用的是闪亮服务器(不是专业版)。这可能是什么原因造成的 我的代码看起来像这样(它不是被动的) 根据sigmabeta下面的回答,我对server.R和global.R进行了更改,但是我希望服务器将x重置为另一个值,以便ui.R可以读取。这就是我现在的代码 #global.R x = 10 get_x_value &
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
您似乎没有提到您的闪亮应用程序必须从global.R获取值(和/或)函数 您可以在server.R文件中执行此操作。server.R的示例代码:
library(shiny)
source("./global.R")
shinyServer(function(input, output) {
values <- reactiveValues()
observe ({
values$x <- get_x_value()
})
output$text1 <- renderText({
values$x
})
})
x也可以在外部定义,如果函数中有额外的处理,您可能需要做一些额外的处理,或者编写更复杂的函数
更新:
添加ui.R的代码
shinyUI(fluidPage(
mainPanel(
htmlOutput(
textOutput("text1")
)
))
非常感谢。这很有帮助。但是,使用此解决方案,我无法从服务器更新global.R中的任何变量。那么,您需要使用被动值。我将编辑我的答案,以解释您如何反应性地执行此操作。我仍然无法从服务器更新x。我编辑了我的问题以显示我在寻找什么。实际上恰恰相反:不需要采购。也许源代码(“global.R”)是否需要从一个版本更改为另一个版本?您不需要源代码
global.R
,它只需要与server.R
和ui.R
位于同一目录中。请注意,shinyApp
调用不能将global.R
和app.R
编织在一起;但是,这是通过shinyAppDir自动完成的。。参见shinyApp和
library(shiny)
source("./global.R")
shinyServer(function(input, output) {
values <- reactiveValues()
observe ({
values$x <- get_x_value()
})
output$text1 <- renderText({
values$x
})
})
get_x_value <- function () {
x = 10
return x
}
shinyUI(fluidPage(
mainPanel(
htmlOutput(
textOutput("text1")
)
))