仅在闪亮仪表板中为特定选项卡面板显示闪亮小部件

问题描述 投票:0回答:1

我想仅在选择特定选项卡时显示一个闪亮的小部件。现在我无法全部显示。

## app.R ##
library(shiny)
library(shinydashboard)
library(shinyWidgets)
ui <- dashboardPage(
  dashboardHeader(title = "P-T-H2O-An"),
  dashboardSidebar(
    uiOutput("filter1")
  ),
  dashboardBody(
    tabsetPanel(
      id="tabs",
      tabPanel(strong("PLAGIOCLASE SATURATION CHECK")),
      tabPanel(strong("AN CONTENT")),
      tabPanel(strong("THERMOMETRY")),
      tabPanel(strong("HYGROMETRY")),
      tabPanel(strong("BAROMETRY")),
      tabPanel(strong("Filtering & Saving Estimates"))
      
      
    )
  )
)

server <- function(input, output) {
  
  
  output$filter1<-renderUI({
    if(input$tabs=="PLAGIOCLASE SATURATION CHECK"){
      pickerInput(
        inputId = "x1",
        label = "Select all option",
        choices = rownames(mtcars),
        multiple = F,
        options = list(`actions-box` = TRUE)
      )
    }
    else{
      return(NULL)
    }
  })
}

shinyApp(ui, server)
r shiny shinydashboard
1个回答
0
投票

您的输入选项卡名称是“strong(“PLAGIOCLASE SATURATION CHECK”)”,这会导致 HTML/文本值传递到“输入”作为

<strong>PLAGIOCLASE SATURATION CHECK</strong>

因此“==”将会失败,因为它实际上不是正在读入的名称。

尝试一下:

  output$filter1<-renderUI({
    ui <- NULL
    if(grepl("PLAGIOCLASE SATURATION CHECK",input$tabs)) {
      ui <- pickerInput(
        inputId = "x1",
        label = "Select all option",
        choices = rownames(mtcars),
        multiple = F,
        options = list(`actions-box` = TRUE)
      )
    }
    return (ui)
  })
© www.soinside.com 2019 - 2024. All rights reserved.