gpt4 book ai didi

r - Shinydashboard 不适用于 uiOutput

转载 作者:行者123 更新时间:2023-12-04 10:57:21 25 4
gpt4 key购买 nike

我在 server.R 中设置了 UI 以获得更多控制,但在 server.R 中定义时,shinyDashboard 不起作用。
我将此方法与 navBarPage 一起使用没有问题。

此代码有效

library(shiny)     
library(shinydashboard)

ui <- dashboardPage( dashboardHeader( ),
dashboardSidebar(),
dashboardBody() )

server <- shinyServer(function(input, output) { })
runApp(list(ui= ui, server = server))

但这只是显示一个空白页面
ui     <-  uiOutput('dash')
server <- shinyServer(function(input, output) {
output$dash <- renderUI({
dashboardPage(dashboardHeader( ),
dashboardSidebar(),
dashboardBody() )
})
})
runApp(list(ui= ui, server = server))

这是一个使用 navBarPage 的示例,效果很好
ui     <-  uiOutput('nav')
server <- shinyServer(function(input, output) {
output$nav <- renderUI({
navbarPage("App Title",
tabPanel("Tab 1"),
tabPanel("Tab 2") )
})
})
runApp(list(ui= ui, server = server))

最佳答案

我认为您不能只使用 uiOutput创建仪表板。我假设您的目标是创建一个动态仪表板。为此,您需要在 UI 中定义标题、正文和侧栏,并使用诸如 renderMenu 之类的函数。在 SERVER 上创建它。这是一个示例,用于创建具有在 SERVER 中定义的所有 UI 的仪表板。

ui <- dashboardPage(
dashboardHeader(title = "My Page"),
dashboardSidebar(sidebarMenuOutput("sideBar_menu_UI")),
dashboardBody(
uiOutput("body_UI"),
uiOutput("test_UI")
)
)

server <- shinyServer(function(input, output, session) {
output$sideBar_menu_UI <- renderMenu({
sidebarMenu(id = "sideBar_Menu",
menuItem("Menu 1", tabName="menu1_tab", icon = icon("calendar")),
menuItem("Menu 2", tabName="menu2_tab", icon = icon("database"))
)
})
output$test_UI <- renderUI ({
tabItems(
tabItem(tabName = "menu1_tab", uiOutput("menu1_UI")),
tabItem(tabName = "menu2_tab", uiOutput("menu2_UI"))
)
})
output$body_UI <- renderUI ({
p("Default content in body outsite any sidebar menus.")
})
output$menu1_UI <- renderUI ({
box("Menu 1 Content")
})
output$menu2_UI <- renderUI ({
box("Menu 2 Content")
})

})

runApp(list(ui= ui, server = server))

在这个例子中,侧边栏的菜单默认没有被选中, body_UI的内容将一直可见。如果您希望仪表板在特定菜单上启动,请输入 sidebarMenu在您的用户界面中。您也可以删除 body_UI .

关于r - Shinydashboard 不适用于 uiOutput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38826893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com