2017-10-16 9 views
0

パネルの後ろにある光沢のあるアプリの設定オプションがあります。さらに、設定オプションは、uiOutput/renderUIを使用してサーバー側で生成されます。 Shinyは、現在選択されているパネルにない項目の評価を延期しますが、評価を強制することが望ましい場合もあります。サーバー側の評価を強制することは可能ですか?ここで隠しパネルの実行をShinyに強制できますか?

は例です:

library(shiny) 

ui <- fluidPage(
    tabsetPanel(tabPanel("Main", 
         plotOutput("dots")), 
       tabPanel("Settings", 
         uiOutput("even.or.odd") 
       ) 
    ) 
) 

server <- function(input, output) { 

    output$dots <- renderPlot({ 
    plot(seq(ifelse(input$even, 0, 1), 20, 2)) 
    }) 
    output$even.or.odd <- renderUI(checkboxInput('even', "Even?",TRUE)) 
} 

shinyApp(ui = ui, server = server) 

それともRStudioからは、「設定」パネルが明らかにされるまでinput$evenが定義されていないので、これは起動時に失敗しrunGist('https://gist.github.com/dkulp2/d897c21dfd1a20f9531b6454ea02a533')

を行います。 (そして、アプリは正常に動作します)シャイニーにパネルを公開せずにeven.or.oddの機能を評価させる方法はありますか?

+0

suspendWhenHidden = FALSEを設定することで、隠された出力オブジェクトの実行を強制することができます'ui'。しかし、一般的には、いくつかのサーバー側ロジックのためにuiOutput/renderUIが必要であると仮定します。 –

答えて

1

あなたはこの例では、簡単ですし、簡単な解決策はuiOutput/renderUIを削除し、ちょうどで `checkboxInput`を置くことであろうoutputOptions

outputOptions(output, "even.or.odd", suspendWhenHidden = FALSE) 
関連する問題