ShinyBS 및 Shinyjs 패키지를 사용하여 Shiny App을 제작 중이며 다른 bscollapse 패널의 라디오 버튼 입력에 따라 bscollapse 패널을 숨기거나 표시하고 싶습니다.Shiny의 bsCollapse 패널 표시/숨기기
Parent1에서 "AAA"또는 "BBB"옵션을 선택한 경우 Parent2에 "AAAA"및 "BBBB"collapsePanels 만 표시하려고합니다.
Parent1에서 "CCC"또는 "DDD"옵션을 선택한 경우 Parent2에 "CCCC"및 "DDDD"collapsePanels 만 표시하려고합니다.
shinyjs 패키지에서 show() 및 hide() 명령을 사용하고 있지만 제대로 작동하지 않습니다. "AAA"또는 "BBB"를 선택하면 Parent2에 아무 것도 나타나지 않습니다. 이는 내가 원하지 않는 것입니다. 난 그냥이 conditionalPanel 대신 쇼()와 숨기기()를 사용하여 작업있어
library(shiny)
library(shinyBS)
library(shinyjs)
server = function(input, output, session) {
observeEvent(input$TypeRadio,{
if (input$TypeRadio == "AAA" || input$TypeRadio == "BBB")
shinyjs::show("collapse1")
shinyjs::hide("collapse2")
})
observeEvent(input$TypeRadio,{
if (input$TypeRadio == "CCC" || input$TypeRadio == "DDD")
shinyjs::show("collapse2")
shinyjs::hide("collapse1")})
}
ui = fluidPage(
shinyjs::useShinyjs(),
bsCollapse(id = "collapseExample", multiple = FALSE,
bsCollapsePanel("Parent1","",
radioButtons("TypeRadio", "",
choices = list("AAA" = "AAA",
"BBB" = "BBB",
"CCC" = "CCC",
"DDD" = "DDD"),
inline = FALSE)),
bsCollapsePanel("Parent2","",
bsCollapse(id = "collapse1",
bsCollapsePanel("AAAA", ""),
bsCollapsePanel("BBBB", "")),
bsCollapse(id = "collapse2",
bsCollapsePanel("CCCC", ""),
bsCollapsePanel("DDDD", ""))
)
)
)
shinyApp(ui = ui, server = server)
확인 : 아래
문제를 재현하는 코드이다. 하지만 show/hide()를 사용하여 왜 처음에는 작동하지 않는지 궁금합니다. 어떤 의견이라도 고맙게 여기겠다, 고마워! – ZedzDeDifelse()가 작동하는 방식이라고 생각합니다. 왼쪽 입력은 입력으로 값의 유효성을 검사 할 때 검사됩니다. 아래 내 대답을 참조하십시오, 나는 원하는대로 작동하도록 코드를 약간 변경했습니다. – Sagar