是否可以在Shiny App中创建模块,该模块以单独的app.R,server.R和ui.R文件记录下来?
我发现的所有示例都是一个包含嵌入式服务器和ui功能的app.R文件。请参见example 1,example 2 !,示例3 !
(我从最后一个示例中获取了代码进行测试)。
我尝试运行此应用程序:
app.R
def remove_zeros_from_ip(ip_add):
return '.'.join(p.lstrip('0') or '0' for p in ip_add.split('.'))
ui.R
library(shiny)
# load module functions
source("hello_world.R")
# Run the application
shinyApp(ui = ui, server = server)
server.R
#ui.R
library(shiny)
#source("hello_world.R")
ui <- fluidPage(
titlePanel("Using of Shiny modules"),
fluidRow(
# Call interface function of module "hello_world"
hello_worldUI(id = "id_1")
)
)
hello_world.R
#server.R
library(shiny)
source("hello_world.R")
server <- function(input, output, session) {
# Call logic server function of module "hello_world"
callModule(module = hello_world, id = "id_1")
}
# UPDATE! -> my Error comes from this line of code in server.R file:
#shinyApp(ui = ui, server = server)
#Removing the line above solve the problem.
但是我得到了这个错误:
警告:发生错误:未找到对象'ui'
52:力量
51:uiHttpHandler
50:shinyApp
force(ui)错误:找不到对象'ui'
答案 0 :(得分:0)
除非您在同一个文件中定义ui
和server
对象,并且它们在运行时生成,或者您在{{1 }}。像下面那样更改您的shinyApp()
,它应该可以工作:
app.R