【问题标题】:R shiny: Why am I unable to access functions defined in another file from server.R?R 闪亮:为什么我无法从 server.R 访问另一个文件中定义的函数?
【发布时间】:2021-05-07 11:42:16
【问题描述】:

如何在不同文件中定义server.R's local 函数并访问Server 文件中的函数? 每次我尝试在另一个文件中定义反应式时,我都会收到以下错误:

反应性错误:plotScatter:找不到对象“输入”

当函数在 server.R 文件中定义和声明时,我没有收到此错误,所以我假设这是因为我分割文件的方式。

这就是我访问函数的方式;

source("filename.R")

我假设我应该能够访问filename.R 中定义的所有模块,而无需执行任何其他操作。 我是闪亮的新手,任何帮助将不胜感激。

【问题讨论】:

    标签: r shiny shiny-server shinyapps shiny-reactivity


    【解决方案1】:

    很难说你的具体情况。我能做的就是向你展示它是如何在我的系统上工作的。我有一个更大的应用程序,它分为几个文件。

    在“app.R”中,我对包含服务器和 ui 函数的文件有两个源调用。

    # ...
    source("getui.R", local = TRUE)
    source("getserver.R", local = TRUE)
    #RUN
    shinyApp(ui = ui, server = server)
    

    在“getserver.R”文件中,我获取了服务器的其他部分。源文件包含所有代码,包括观察者和反应值。直到现在我才使用source(...)$value 访问源文件的内容。我还设置了local = TRUElocal 确定源代码将添加到哪个环境。在这种情况下,您需要在服务器函数的环境中使用它。

    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 元素的信息。但是,手册中没有提到它,谷歌也没有直接点击。我只能说它是这样工作的,当我删除它时它就不行了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 2015-01-21
      • 2020-08-31
      • 2018-07-19
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多