1

多数の 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)
4

0 に答える 0