我试图在我闪亮的仪表板上添加网站信息,对于“关于”部分(见图),我希望当单击该选项卡时,仪表板主体上只显示几行。我怎么可能做到呢?我可以成功地为“联系人”部分添加href。

发布于 2020-02-12 07:50:58
也许我听不懂你的问题,但你说的是:
library(shiny)
library(shinydashboard)
header <- dashboardHeader()
sidebar <- dashboardSidebar(
sidebarMenu(
id = "tabs",
menuItem("About", icon = icon("info"), tabName = "about"),
menuItem("Contact", icon = icon("phone"), tabName = "contact")
)
)
)
body <- dashboardBody(
tabItems(
tabItem("about",
h1("About")),
tabItem("contact",
h1("Contact"))
)
)
shinyApp(
ui = dashboardPage(header, sidebar, body),
server = function(input, output) { }
)当您单击About时,您将在dashboardBody中获得一个新的选项卡,在该选项卡中您可以显示任何您想要的内容。
更新
根据您的说明,您可以使用shinyjs进行hide/show,相关部分如下:
library(shiny)
library(shinydashboard)
library(shinyjs)
header <- dashboardHeader()
sidebar <- dashboardSidebar(
sidebarMenu(
id = "tabs",
menuItem("About", icon = icon("info"), tabName = "about"),
menuItem("Contact", icon = icon("phone"), tabName = "contact")
)
)
)
body <- dashboardBody(
useShinyjs(),
fluidPage(
fluidRow(id = "mainContent",
column(12, h1("Main Content"))
),
hidden(fluidRow(id = "contact", h1("Contact Info")))
)
)
shinyApp(
ui = dashboardPage(header, sidebar, body),
server = function(input, output) {
observe({
if (input$tabs == "contact") {
hideElement("mainContent")
showElement("contact")
} else {
hideElement("contact")
showElement("mainContent")
}
})
}
)当您现在单击Contact时,主要部分将被隐藏,并显示联系人。然而,我有一种感觉,那就是使用shinydashboard的想法有点不正确。
发布于 2020-02-12 09:08:41
@thothal,它不允许我添加作为评论的长度,因此张贴我的评论(以下)作为一个答复。
如果我不清楚的话我很抱歉。然而,你的回答部分地帮助了我。我已经在我的tabItems部分中加入了dashboardBody部分,如下所示:
dashboardBody(
fluidPage(
fluidRow(
column(12, div(dataTableOutput("dataTable")))
)
),
tabItems(
tabItem("About", h1("text to be displayed"))
)
)但是“要显示的文本”显示在表下面。
我想要的是,About部分(单击时)应该只显示文本,而不是表。我知道这只是dashboardBody部分中代码的格式化,但我不知道该如何做。
更清楚的是,我的仪表板部分应该始终显示datatable,单击about部分应该显示文本,而不是datatable。我真的希望这是清楚的。谢谢你的帮助:)
https://stackoverflow.com/questions/60182902
复制相似问题