2017-10-20 12 views
1

私はR shinyDashboardを使用してWebアプリケーションを作成しています。このアプリは、一部の「概要」タブ項目のランディングがアクティブとして読み込まれています。さらにいくつかのtabItemがあります。 「設定」という特定のタブアイテムがあるとします。ここでは、外観とフィルタを制御できます(デフォルト値で適用したい)。動的値を使用するため、サーバー側に配置する必要があります。R shiny forceレンダリング時にサーバー側の入力を非アクティブなタブアイテムにレンダリング

問題は、「設定」タブアイテムにアクセスしていないうちは、その入力が初期化されていないため、「概要」タブアイテムにデータがありません。

以下

(実際には、それが唯一の「設定」を訪問した後に移入されながら)テキストボックスにアプリは値がロードされるべきで再現性の非常に単純な例では、「10」である:

require(shiny) 
require(shinydashboard) 

ui<-dashboardPage(skin = "black", 
    dashboardHeader(
    ), 

    dashboardSidebar(
     sidebarMenu(
      menuItem("Overview", tabName = "overview"), 
      menuItem("Settings", tabName = "settings")  ) 
     ), 

     dashboardBody(
      tabItems(
       tabItem("overview", 
       uiOutput("textUI") 
      ), 

      tabItem("settings", 
       htmlOutput("FilterUI") 
      ) 
     ) 
    ) 
) 

server<-shinyServer(function(input, output,session) { 

    output$FilterUI <- renderUI({ 
     numericInput("selected_filter", "Select value",min=0,max=20,value=10) 
    }) 

    output$textUI <-renderUI({ 
     box(input$selected_filter) 
    }) 
}) 

shinyApp(ui, server) 

答えて

0

reactiveValuesを定義するか、または計算したい変数にreactive()を定義します。それをデフォルト(10)に割り当てます。 numericInputoutput$textUIの値引数の無効値を参照してください。 observeEventnumericInputに追加し、それに応じてreactiveValuesを更新してください。

+0

ありがとうございました、この例では完璧に機能しました。それをフルコードにするために移動します。 – user3096229

関連する問題