R闪亮的强制渲染的服务器端输入在非活动tabItem上加载

R闪亮的强制渲染的服务器端输入在非活动tabItem上加载

问题描述:

我使用R shinyDashboard创建一个Web应用程序。这个应用程序在一些'概述'tabitem上作为活动加载着陆。还有一些更多的tabItems。假设我有一个名为'设置'的特定tabItem,其中可以控制外观和过滤器,我希望使用默认值。它使用动态值,所以它必须位于服务器端。R闪亮的强制渲染的服务器端输入在非活动tabItem上加载

问题是,直到我没有访问'设置'tabItem,其输入未初始化,因此'概述'tabItem缺少数据。

下面是一个可再现的非常简单的例子,其中,应用程序应被加载在文本框中的值“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) 

为要计算的变量定义一个reactiveValues或只是一个reactive()。将其分配为默认值(10)。请参阅numericInput的值参数以及output$textUI的反应值。 observeEventnumericInput并相应地更新reactiveValues

+0

谢谢,在这个例子上工作完美。继续把它放到完整的代码中。 – user3096229