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
的反应值。 observeEvent
在numericInput
并相应地更新reactiveValues
。
谢谢,在这个例子上工作完美。继续把它放到完整的代码中。 – user3096229