2016-09-06 98 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

相關問題