2016-09-06 97 views
0

我试图让一个闪亮的反应用户界面运行。它变得相当复杂(就代码行而言),所以我认为重构是一个好主意。把它总之,这是我的服务器代码:闪亮的反应用户界面没有运行服务器代码

require(ggplot2) 
require(h2o) 

shinyServer(function(input, output, session) { 
    #stop() 
    localH2o <<- h2o.init(nthreads = 3) #Global variable 

    source("BuilderServer.R", local = TRUE)[1] 
    source("ReviewerServer.R", local = TRUE)[1] 

    # CleanupFUnctions 
    session$onSessionEnded(function() { 
    rm(list=ls()) 
    }) 
}) 

,我认为sourcelocal = TRUE简直就像复制粘贴R上的文件的内容。所以它们包含形式为output$functionName <- renderUI({code})的函数。 UI代码依赖于这些功能,他们大多是被动的,UI代码如下所示:

shinyUI(navbarPage("Metamodel", 
    tabPanel("Build Custom Model", 
    fluidRow(
     column(12,align="center", 
     uiOutput("BuilderUpTitle") 
    ) 
    ), 
    fluidRow(
     column(3, 
      uiOutput("BuilderAxisSelector") 
    ) 
    ) 
) 
)) 

在这种特殊情况下,"BuilderUpTitle"功能如下:

output$BuilderUpTitle <- renderUI({ 
    inFile <- input$BuilderInputFile 
    if(is.null(input$BuilderInputFile)){ 
    fileInput("BuilderInputFile", "Upload a xlsx file") 
    } else { 
    #R Stuff done here with the file 
    textInput("text", label = h3("Model Title"), value = "Enter text...") 
    } 
}) 

我写的代码昨天,它正在工作。今天,我再次打开电脑,启动应用程序时,甚至没有从server.R的依赖项加载(ggplot2和h2o)。 "BuilderUpTitle"函数的下载按钮完全不显示,闪亮只能执行ui.R代码。我将工作区设置为源文件的文件夹,但没有帮助。即使我从服务器取消注释stop()函数,但似乎没有任何变化。在RStudio中设置断点不会停止服务器中的代码,所以这就是为什么我觉得闪亮不在调用服务器功能。然而,代码之前工作,我没有修改单个文件。我甚至将源文件的内容复制到server.R代码中,但仍然无法加载。有什么明显的我失踪了?先谢谢你!

回答

0

好的,我再一次发现自己是什么问题,而我所说的一切都不会让任何人发现什么是错的。这里是最微小的可能的代码重新产生此问题:

ui.R

shinyUI(fluidPage(
    fluidRow(
    uiOutput("itWillLock"), 
    uiOutput("itWillLock") 
) 
)) 

server.R

shinyServer(function(input, output) { 
    output$itWillLock <- renderUI({ 
    sliderInput("slider","Slider",min=0,max=1,value=0) 
    }) 
}) 

我猜[R陷在一个无限循环,并永远不会到达服务器。 R文件。这是我应该报告的错误吗?或者只是常识会使人们摆脱这种麻烦。谢谢!

+0

它不是一个无限循环。 ui.r不能对同一个输出绑定对象有多个引用。 – hedgedandlevered

相关问题