Показать окно на основе блестящего виджета в блестящей приборной панели - PullRequest
0 голосов
/ 05 октября 2019

Можно ли отображать или нет box на блестящей приборной панели в зависимости от выбора selectInput()?

## app.R ##
library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
selectInput("sel","Select",c("Display","Not"))
),
  dashboardBody(
box()
)
)

server <- function(input, output) { }

shinyApp(ui, server)

1 Ответ

1 голос
/ 05 октября 2019

Для интерактивности вам необходимо динамически генерировать пользовательский интерфейс в кодах сервера.

## app.R ##
library(shiny)
library(shinydashboard)

ui <- dashboardPage(
    dashboardHeader(),
    dashboardSidebar(
        selectInput("sel","Select",c("Display","Not"))
    ),
    dashboardBody(
        uiOutput("conditionalBox")
    )
)

server <- function(input, output) {
    output$conditionalBox <- renderUI({
        if(input$sel == "Display"){
            return(
                box(title = "Display when choosing Display in #sel")
            )
        } else {
            return(
                NULL
            )
        }
    })
}

shinyApp(ui, server)
...