Я поддерживаю свой код для большой и громоздкой блестящей приборной панели, и я заметил, что функция события click больше не сбрасывается.
После того, как мы сократили его до минимального рабочего примера и сравнилиРешения https://stackoverflow.com/a/44543204/11703379 и https://community.plot.ly/t/reseting-click-events/2718, Я пришел к выводу, что должно быть изменение в библиотеках plotly
или shinyjs
, которые отключают эту функцию.Остановив выполнение на графике, я вижу, что объект графика действительно несет атрибут источника правильно.
library(plotly)
library(shiny)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
plotlyOutput("plot"),
extendShinyjs(text = "shinyjs.resetClick = function() { Shiny.onInputChange('.clientValue-plotly_click-plot', 'null'); }"),
actionButton("reset", "Reset click"),
verbatimTextOutput("click")
)
server <- function(input, output, session) {
observeEvent(input$reset, js$resetClick())
output$click <- renderPrint(event_data("plotly_click", source = "plot" ))
output$plot <- renderPlotly(
plot_ly(mtcars, x = ~mpg, y = ~wt,
type="scatter",
mode="markers",
source = "plot") %>%
event_register("plotly_click")
)
output$click <- renderPrint({
d <- event_data(source = "plot","plotly_click")
if (is.null(d)) "No click" else d
})
}
shinyApp(ui, server)
Кто-нибудь может это подтвердить?Я использую plotly
версию 4.9.0 и shinyjs
версию 1.0.