多数の selectizeInput とノードのネットワーク (visNetwork) で構成される絶対パネルを作成するコードを (shiny を使用して) 作成しました。ドロップダウン リストの 1 つからオプションを選択すると、特定のノードが強調表示されます。現在、キャンバスをクリックしてノードの選択を解除すると、ドロップダウン リストがリセットされます (updateSelectizeInput を使用)。ただし、このプロセスを繰り返しても、ドロップダウン リストはリセットされません。ドロップダウン リストが最初のクリックでのみリセットされるのはなぜですか? 以下に私のコードの一部を含めました。
どんな助けでも大歓迎です。
server <- function(input, output, session) {
output$network_proxy_select <- renderVisNetwork({
visNetwork(nodes, edges) %>%
visNodes(font = list(face = "arial,sans-serif")) %>%
visOptions(highlightNearest = list(enabled = TRUE, degree = 0)) %>%
visInteraction(navigationButtons = FALSE, keyboard = TRUE) %>%
visPhysics(stabilization = FALSE) %>%
visEvents(type="on", click = "function(properties){
Shiny.onInputChange('click', properties.nodes);
;}")
})
observe({
if(is.null(input$click)) {
updateSelectizeInput(session, "sel1", selected="")
updateSelectizeInput(session, "sel2", selected="")
updateSelectizeInput(session, "sel3", selected="")
updateSelectizeInput(session, "sel4", selected="")
updateSelectizeInput(session, "sel5", selected="")
updateSelectizeInput(session, "sel6", selected="")
}
})
...
}
ui <- fluidPage(
sidebarLayout(
absolutePanel(top=20, left=20, height="auto", width="auto", draggable=FALSE,
selectizeInput(inputId = "sel1", selected="", choices = c("", ...), multiple = FALSE, width="500px"),
selectizeInput(inputId = "sel2", selected="", choices = c("", ...), multiple = FALSE, width="500px"),
selectizeInput(inputId = "sel3", selected="", choices = c("", ...), multiple = FALSE, width="500px"),
selectizeInput(inputId = "sel4", selected="", choices = c("", ...), multiple = FALSE, width="500px"),
selectizeInput(inputId = "sel5", selected="", choices = c("", ...), multiple = FALSE, width="500px"),
selectizeInput(inputId = "sel6", selected="", choices = c("", ...), multiple = FALSE, width="500px")
),
mainPanel(visNetworkOutput("network_proxy_select", height="900px"), width="auto")
)
)
shinyApp(ui = ui, server = server)