最近更新后,使用 shinyjs 重置 event_data 似乎不再有效
Reset event_data using shinyjs doesn't seem to work anymore, after the recent update
我正在维护一个又大又笨重的闪亮仪表板的代码,我注意到点击事件功能不再重置。
将其简化为一个最小的工作示例,并与 and 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.
似乎不再需要 .clientValue-。可能 plotly
有变化,但我不确定。
将 .clientValue-plotly_click-plot
更改为 plotly_click-plot
应该可以。
输出:
我正在维护一个又大又笨重的闪亮仪表板的代码,我注意到点击事件功能不再重置。
将其简化为一个最小的工作示例,并与 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.
似乎不再需要 .clientValue-。可能 plotly
有变化,但我不确定。
将 .clientValue-plotly_click-plot
更改为 plotly_click-plot
应该可以。