我在闪亮的应用程序中遇到了一些依赖项问题。 我的情况是:我有一个可点击的情节。点击后,图表下方的表格会显示图中最近的点。
问题在于,根据窗口大小调整,这一新的信息行可以触发滚动条显示在浏览器窗口的右侧。这会将可用的窗口大小更改为闪亮,并且会重新绘制绘图。在重绘时,click事件将丢失,表将更新,表现在再次为空。这意味着删除了滚动条,并再次重新绘制了绘图,下面有一个空表。
我不介意重新绘制(一次)以适应滚动条(它反过来容纳表中的新行)。但我不想丢失点击事件数据!
library(shiny)
library(ggplot2)
UI <- fluidPage(mainPanel(
plotOutput("plot", click = "plot_click"),
tableOutput("info_click")
))
SERVER <- function(input, output) {
# make simple plot
output$plot <- renderPlot({
ggplot(mtcars, aes(mpg,cyl)) + geom_point()
})
# read local point from click
output$info_click <- renderTable({
nearPoints(mtcars, input$plot_click, threshold = 10, maxpoints = 1)
})
}
runApp(shinyApp(UI,SERVER))
为了触发恼人的事件,请调整窗口大小,使高度和宽度与匹配,而不使用滚动条。单击时,应生成滚动条,重新绘制绘图等,然后丢失点击数据。
我尝试了isolate({})
和observeEvent({})
的各种组合,但我现在放弃了!
我拍摄了有关我困境的截屏视频,请参阅https://www.youtube.com/watch?v=TsM1WppTQi8
(Windows 10上的Chrome ...同样适用于Firefox和Opera。)
请注意,我的屏幕捕获程序似乎已经用一个稍微偏离真实位置的白色十字替换了我的鼠标指针。请忽略它 - 我实际上是在点击黑点。
您会看到,当我点击某个点时,会填充下表。发生这种情况时,会出现右侧的滚动条,绘图重绘,&#34;点击&#34;被遗忘,表格变空,滚动条消失,剧情再次重新绘制。