R 闪亮:为什么我无法从 server.R 访问另一个文件中定义的函数?
R shiny: Why am I unable to access functions defined in another file from server.R?
如何在不同文件中定义server.R's
本地函数并访问服务器文件中的函数?
每次我尝试在另一个文件中定义反应式时,我都会收到以下错误:
Error in reactive:plotScatter: object 'input' not found
在 server.R 文件中定义和声明函数时,我没有收到此错误,所以我假设这是因为我如何划分文件。
这就是我访问这些功能的方式;
source("filename.R")
我假设我应该能够访问 filename.R
中定义的所有模块而无需执行任何其他操作。
我对 shiny 很陌生,如有任何帮助,我们将不胜感激。
具体情况不好多说。我能做的就是向您展示它如何在我的系统上运行。我有一个更大的应用程序,分为几个文件。
在“app.R”中,我对包含服务器和 ui 函数的文件进行了两次源调用。
# ...
source("getui.R", local = TRUE)
source("getserver.R", local = TRUE)
#RUN
shinyApp(ui = ui, server = server)
在“getserver.R”文件中,我获取了服务器的其他部分。源文件包含所有代码,包括观察者和反应值。只是现在我用 source(...)$value
访问源文件的内容。我也设置了local = TRUE
。 local
确定将源代码添加到哪个环境。在这种情况下,您需要在服务器功能的环境中使用它。
server <- shinyServer(function(input, output, session) {
source(file.path("server", "tab_setup_srv.R"), local = TRUE)$value
source(file.path("server", "tab_about_srv.R"), local = TRUE)$value
# further code
})
我试图了解有关 $value
元素的更多信息。但是,手册中没有提及,Google中也没有直接命中。我只能说它是这样工作的,当我删除它时它不会。
如何在不同文件中定义server.R's
本地函数并访问服务器文件中的函数?
每次我尝试在另一个文件中定义反应式时,我都会收到以下错误:
Error in reactive:plotScatter: object 'input' not found
在 server.R 文件中定义和声明函数时,我没有收到此错误,所以我假设这是因为我如何划分文件。
这就是我访问这些功能的方式;
source("filename.R")
我假设我应该能够访问 filename.R
中定义的所有模块而无需执行任何其他操作。
我对 shiny 很陌生,如有任何帮助,我们将不胜感激。
具体情况不好多说。我能做的就是向您展示它如何在我的系统上运行。我有一个更大的应用程序,分为几个文件。
在“app.R”中,我对包含服务器和 ui 函数的文件进行了两次源调用。
# ...
source("getui.R", local = TRUE)
source("getserver.R", local = TRUE)
#RUN
shinyApp(ui = ui, server = server)
在“getserver.R”文件中,我获取了服务器的其他部分。源文件包含所有代码,包括观察者和反应值。只是现在我用 source(...)$value
访问源文件的内容。我也设置了local = TRUE
。 local
确定将源代码添加到哪个环境。在这种情况下,您需要在服务器功能的环境中使用它。
server <- shinyServer(function(input, output, session) {
source(file.path("server", "tab_setup_srv.R"), local = TRUE)$value
source(file.path("server", "tab_about_srv.R"), local = TRUE)$value
# further code
})
我试图了解有关 $value
元素的更多信息。但是,手册中没有提及,Google中也没有直接命中。我只能说它是这样工作的,当我删除它时它不会。