在 Shiny 中使用 observeEvent() 和 500 个模态

Using observeEvent() with 500 modals in Shiny

提问人:JohnBones JohnBones 提问时间:11/17/2023 最后编辑:JohnBones JohnBones 更新时间:11/17/2023 访问量:26

问:

这是我闪亮的应用程序中的服务器(模块)代码:

    page_Server <- function(id) {
      moduleServer(id,
                   function(input, output, session) {
                     ns <- NS(id)
                     1:551 %>%
                       map(
                         ~    
                           observeEvent(input[[all_images_ID[.x]]], {
                             showModal(modalDialog(size = 'l',
                                                   easyClose = TRUE,
                                                   h1(all_images_path[.x]),
                                                   img(src = all_images_path[.x])))
                           })
                       )
}

当我单击图像时,会出现模态。但是当我单击并再次开始重复相同的图像时

但是当我纠正这个硬化的代码时,会低频 551 次

     observeEvent(input[[all_images_ID[1]]], {
                       showModal(modalDialog(size = 'l',
                                             easyClose = TRUE,
                                             h1('Text'),
                                             img(src = all_images_path[1])))
                     })
                     observeEvent(input[[all_images_ID[2]]], {
                       showModal(modalDialog(size = 'l',
                                             easyClose = TRUE,
                                             h1('Text'),
                                             img(src = all_images_path[2])))
                     })
    #untill ....

observeEvent(input[[all_images_ID[551]]], {
                       showModal(modalDialog(size = 'l',
                                             easyClose = TRUE,
                                             h1('Text'),
                                             img(src = all_images_path[551])))
                     })

一切顺利

为什么会这样?

使用 map 乘以观察事件的数量是一个问题吗?

有什么想法或建议吗?

r 闪亮

评论


答: 暂无答案