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)
OK:以下
は、問題を再現するためのコードです。しかし、私はshow/hide()を使用して最初に動作しない理由を知りたいと思っています。どんな入力をいただければ幸いですか、ありがとうございます! – ZedzDeD私はそれが 'ifelse()'の仕組みだと思います。左辺の割り当ては、入力で値を検証するときにチェックされます。以下の私の答えを見てください、私はあなたのコードを少し変更して、必要に応じて動作させました。 – Sagar