Скрыть helptext () согласно условию if в блестящем приложении - PullRequest
0 голосов
/ 05 июля 2018

У меня есть простое блестящее приложение:

library(shiny)

ui <- navbarPage(
  "Application",
  tabPanel("General",
           sidebarLayout(

             sidebarPanel(

             ),

             mainPanel(
               wellPanel(
                 tags$style(type="text/css",
                            ".shiny-output-error { visibility: hidden; }",
                            ".shiny-output-error:before { visibility: hidden; }"
                 ),
                 uiOutput("c1"),
                 uiOutput("num8"),
                 uiOutput("help1")

               )



             )
           )

  )
)

server <- function(input, output,session) {

  output$c1<-renderUI({
    checkboxInput("ch1", 
                  h5("Person ID"), value = FALSE)
  })

  output$num8<-renderUI({
    if(input$ch1==T){
      textInput("nm8", 
                h6("Column"), 
                value = 1)
    }
    else{
      output$help1<-renderUI({
        helpText("Click Person ID")
      }) 
    }

  })
}
shinyApp(ui, server)

Чего я хочу добиться, так это скрыть текст подсказки «Click Person ID», когда отмечен флажок. Я использовал условие if для этого, но в то время как числовой ввод скрыт, когда он имеет, чтобы текст помощи всегда был там.

1 Ответ

0 голосов
/ 05 июля 2018

Я вижу renderUI(), завернутый в renderUI(). Это может привести к неприятностям. Вместо этого вы можете разделить их, тогда это сработает.

  output$num8<-renderUI({
    if(input$ch1 == TRUE){
      textInput("nm8", 
                h6("Column"), 
                value = 1)
    }
  })

  output$help1<-renderUI({
    if(input$ch1 == FALSE){
      helpText("Click Person ID")
    } 
  })

Полный код будет читать:

library(shiny)
ui <- navbarPage(
  "Application",
  tabPanel("General",
           sidebarLayout(

             sidebarPanel(

             ),

             mainPanel(
               wellPanel(
                 tags$style(type="text/css",
                            ".shiny-output-error { visibility: hidden; }",
                            ".shiny-output-error:before { visibility: hidden; }"
                 ),
                 uiOutput("c1"),
                 uiOutput("num8"),
                 uiOutput("help1")

               )
             )
           )
  )
)

server <- function(input, output,session) {

  output$c1<-renderUI({
    checkboxInput("ch1", 
                  h5("Person ID"), value = FALSE)
  })

  output$num8<-renderUI({
    if(input$ch1 == TRUE){
      textInput("nm8", 
                h6("Column"), 
                value = 1)
    }
  })

  output$help1<-renderUI({
    if(input$ch1 == FALSE){
      helpText("Click Person ID")
    } 
  })


}
shinyApp(ui, server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...