Сброс event_data с использованием brightjs больше не работает после недавнего обновления - PullRequest
2 голосов
/ 26 июня 2019

Я поддерживаю свой код для большой и громоздкой блестящей приборной панели, и я заметил, что функция события 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.

1 Ответ

1 голос
/ 26 июня 2019

Похоже, .clientValue- больше не требуется.Возможно, изменение plotly, но я не уверен в этом.

Измените .clientValue-plotly_click-plot на plotly_click-plot, и оно должно работать.

Вывод:

Output

...