问题描述
我正在构建一个没有仪表板结构的 ShinyApp,因为我想使用左侧作为页面的侧边栏,而不是导航到不同的页面。并让导航栏成为用户导航到不同页面的位置。
如果不使用 Shinydashboard/flexdashboard 结构,valueBox 将无法正确显示。有没有人知道如何在没有仪表板结构作为依赖的情况下利用 valueBox 设计?
我从 stackOverflow 中找到了一个示例,并针对此问题进行了重新调整:
没有仪表盘结构/valueBox的设计会丢失
library(shiny)
library(shinydashboard)
ui <- fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("bins","Number of bins:",min = 1,max = 50,value = 30)
),# Show a plot of the generated distribution
mainPanel(
valueBoxOutput("vBox1",width = 2)
)
)
)
server <- function(input,output) {
output$vBox1 <- shinydashboard::renderValueBox({
d <- 42
shinydashboard::valueBox( d,"Ccy")
})
}
shinyApp(ui,server)
仪表板/设计的正常方式,我想在没有仪表板结构的情况下实现 只有 UI 部分不同
library(shiny)
library(shinydashboard)
ui <- dashboardPage(skin = "black",dashboardHeader(title = "test"),dashboardSidebar(
sidebarMenu()),dashboardBody(
fluidRow(
valueBoxOutput("vBox1",width = 2))))
server <- function(input,server)
解决方法
您可以使用 useShinydashboard
中的 shinyWidgets
来实现所需的结果:
library(shiny)
library(shinydashboard)
library(shinyWidgets)
ui <- fluidPage(
useShinydashboard(),# Application title
titlePanel("Old Faithful Geyser Data"),# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("bins","Number of bins:",min = 1,max = 50,value = 30)
),# Show a plot of the generated distribution
mainPanel(
valueBoxOutput("vbox1",width = 2)
)
)
)
server <- function(input,output) {
output$vbox1 <- shinydashboard::renderValueBox({
d <- 42
shinydashboard::valueBox( d,"Ccy")
})
}
shinyApp(ui,server)