多くのタブを使用した光沢のあるアプリ(navbarPageを使用)があり、選択されているタブに関係なくサイドバーメニューを追加したいと思います。サイドバーの入力値は、すべてのタブの内容に影響します。 さらに、サイドバーメニューのようにサイドバーメニューを非表示にすることも可能です。トップナビゲーション(navbarPage)とサイドバーメニュー(sidebarMenu)を光沢のある方法で結合する方法
は、私は2つの方法を参照してください。
(A)shinydashboardを使用し、何とかトップナビゲーションバーや
を追加(B)navbarPage使って何とか非表示にすることができますサイドバーのメニューを追加します。ナビゲーションバーのメニューは、メニューの一部ではないタブセットがあるので、醜いです
library("shiny")
library("shinydashboard")
cases <- list(A=seq(50,500, length.out=10), B=seq(1000,10000, length.out=10))
ui <- dashboardPage(
dashboardHeader(title = "dash w/ navbarMenu"),
dashboardSidebar(selectizeInput('case', 'Pick a case', selected="A", choices = c("A", "B"), multiple = FALSE), numericInput('num', 'Number', min = 1, max = 10, value = 1, step = 1)),
dashboardBody(
tabsetPanel(
tabPanel(h4("Perspective 1"),
tabsetPanel(
tabPanel("Subtab 1.1", plotOutput("plot11")),
tabPanel("Subtab 1.2")
)),
tabPanel(h4("Perspective 2"),
tabsetPanel(
tabPanel("Subtab 2.1"),
tabPanel("Subtab 2.2")
))
)
)
)
server <- function(input, output) {
output$plot11 <- renderPlot({
hist(rnorm(cases[[input$case]][input$num]))
})
}
shinyApp(ui, server)
:shinydashboard使用
postに基づいて、トップビューに「パースペクティブ1」と「パースペクティブ2」のタブを含めることはできないと思うので、shinydashboardを使用するのは実現不可能です。
(B)navbarPageを使用して、私はnavlistPanel()を使用してみましたが、私は
に成功しなかった(1)それはすなわち、sidebarMenuのように振る舞うページの左側に見える全体的なこと作ります(2)hide機能を追加する。
library("shiny")
cases <- list(A=seq(50,500, length.out=10),
B=seq(1000,10000, length.out=10))
ui <- navbarPage(title = "nav w/ sidebarMenu",
tabPanel(h4("Perspective 1"),
tabsetPanel(
tabPanel("Subtab 1.1",
plotOutput("plot11")),
tabPanel("Subtab 1.2")
)),
tabPanel(h4("Perspective 2"),
tabsetPanel(
tabPanel("Subtab 2.1"),
tabPanel("Subtab 2.2")
)),
navlistPanel(widths = c(2, 2), "SidebarMenu",
tabPanel(selectizeInput('case', 'Pick a case', selected="A", choices = c("A", "B"), multiple = FALSE)),
tabPanel(numericInput('num', 'Number', min = 1, max = 10, value = 1, step = 1))
)
)
server <- function(input, output) {
output$plot11 <- renderPlot({
hist(rnorm(cases[[input$case]][input$num]))
})
}
shinyApp(ui, server)
繰り返しますが、私が欲しいものである:ここに私の試みである私が知っている
は、flexDashboardあります。これは3つの理由で問題が解決しない:それはコラムではなく、実際のサイドバーメニューであるとして
(1)私は、サイドバーのメニューを非表示にすることはないと思う、
を(2)それは私のアプリで必要な反応しない、
(3)私はデータテーブルが動作しないと思う、私も必要です。
さらに、コードをRmarkdown構文に変更する必要はありません。
私のアプリはすでにnavbarPageを使って構築されているので、navbarPageを使用してサイドバーメニューを追加することをお勧めします。
ありがとうSBista。サイドバーメニューを折りたたみ可能にすることは可能ですか? – jmjr
'shinyjs'パッケージから' hide'を使うことができます。 – SBista
[this](https://stackoverflow.com/a/46889284/5894457)の回答を参照することができます。 – SBista