Отмените выбор краев программно в Shiny в visNetwork - PullRequest
1 голос
/ 16 марта 2020

Я хочу отменить выбор ребер в сети visNetwork в Shiny. visSetSelection должно работать, но это не так: если я выбираю край вручную, а затем нажимаю кнопку, край остается выбранным. Я не знаю другого способа сделать это. Это https://github.com/almende/vis/issues/1670 предлагает использовать visSelectEdges и установить id в NULL, но это также не имеет никакого эффекта. Есть идеи?

require(shiny)
require(visNetwork)

server <- function(input, output) {
  output$network <- renderVisNetwork({
    # minimal example
    nodes <- data.frame(id = 1:3)
    edges <- data.frame(from = c(1,2), to = c(1,3))

    visNetwork(nodes, edges)
  })

  observeEvent("deselect",{
  visNetworkProxy("network") %>%
    visSetSelection(edgesId = NULL,unselectAll = T) 


})
}

ui <- fluidPage(
  visNetworkOutput("network"),
  actionButton("deselect","Deselect")
)

shinyApp(ui = ui, server = server)

1 Ответ

1 голос
/ 16 марта 2020

Вы можете использовать visUnselectAll (см. здесь ). Также вам необходимо заменить "deselect" на input$deselect в состоянии observeEvent.

require(shiny)
require(visNetwork)

server <- function(input, output) {
  output$network <- renderVisNetwork({
    # minimal example
    nodes <- data.frame(id = 1:3)
    edges <- data.frame(from = c(1,2), to = c(1,3))

    visNetwork(nodes, edges)
  })

  observeEvent(input$deselect, {
    visNetworkProxy("network") %>%
      visUnselectAll()

  })
}

ui <- fluidPage(
  visNetworkOutput("network"),
  actionButton("deselect","Deselect")
)

shinyApp(ui = ui, server = server)
...