2017-01-26 4 views
0

나는 변수를 server.R에 저장하고 다른 변수를 사용하지 않고 ui.R에서 동일한 변수를 사용했다. (전역 선언은 제외) 서버에서 ui.R에 변수를 전달하는 방법이 있습니까? 아르 자형? 그것은 작동하는 한 hacky 방법 일 수 있었다.server.R의 변수를 ui.R로 전역 변수없이 전달하는 방법은 무엇입니까?

+0

ui.r에서 무엇을하고 싶습니까? renderUI()를 사용하여 server.R의 변수를 기반으로 입력을 만들고이를 ui.r로 보냈습니까? – BigDataScientist

+0

conditionalPanel에 문자열이나 정수를 전달하여 패널을 표시할지 여부를 결정할 수 있습니다. (버튼을 클릭하지 않아도) – tonybrown

+0

아 좋아요. 서버 측에서 다음과 같이 사용할 수 있습니다. output $ serverInfo <- reactive ({ TRUE }); 그리고 UI 측면 : 조건부 패널 (조건 = "output.serverInfo! = 0") – BigDataScientist

답변

2

이 (내 Shiny tips 'n tricks list에서 직접 촬영) 당신에게 유용 할 수 있습니다 :

를 사용하여 UI를 conditionalPanel의 서버에서 변수()

UI에서 조건부 패널을 사용하여의 조건은 일반적으로 입력 값을 사용하는 표현식입니다. 그러나 입력 필드와 직접적으로 관련이없는 복잡한 조건의 조건부 패널을 사용하려는 경우에는 어떻게됩니까? 이 예에서는 UI에서 사용할 수있는 서버 코드에서 출력 변수를 정의하는 방법을 보여줍니다. 또 다른 방법은 shinyjs 패키지의 show() 및 hide() 함수를 사용하는 것입니다.

library(shiny) 

ui <- fluidPage(
    selectInput("num", "Choose a number", 1:10), 
    conditionalPanel(
    condition = "output.square", 
    "That's a perfect square!" 
) 
) 

server <- function(input, output, session) { 
    output$square <- reactive({ 
    sqrt(as.numeric(input$num)) %% 1 == 0 
    }) 
    outputOptions(output, 'square', suspendWhenHidden = FALSE) 
} 

shinyApp(ui = ui, server = server) 
+0

굉장! 한 가지 질문은, suspendWhenHidden = FALSE는 출력이 UI에서 렌더링되지 않더라도 실행되는지 여부입니다. – tonybrown