我正在使用Shiny创建一个Web应用程序,遇到了一个与管理来自Shiny模块的通知相关的问题。我的目标是在我的应用程序的主UI中动态显示通知,基于来自Shiny模块的操作或值,但我发现要顺利实现这一功能具有挑战性。
下面是我的代码的简化摘录:
library(shiny)
notifUI <- function(id) {
ns <- NS(id)
tagList(
actionButton(ns("show_notif"), "Show Notification")
)
}
ui <- fluidPage(
notifUI("notifModule"),
uiOutput("notification")
)
notifServer <- function(input, output, session) {
observeEvent(input$show_notif, {
output$notification <- renderUI({
# Example code to display the notification
tags$div(
id = "notif_div",
class = "alert alert-warning",
"This is a notification message."
)
})
})
}
server <- function(input, output, session) {
callModule(notifServer, "notifModule")
}
shinyApp(ui, server)
如何动态地将消息从模块传递到主服务器以显示为通知?
是否有一种方法或特定的软件包,将促进管理通知在此配置与闪亮的模块?
任何帮助或指导将不胜感激。
提前感谢您
2条答案
按热度按时间jq6vz3qz1#
这是一个完整的解决方案,基于我上面的评论。它比OP简单,因为它不需要向模块服务器传递额外的参数,所以通信只是从模块到主应用程序,而不是双向的。
fcipmucu2#
我已经设法找到了一个解决方案,感谢在正确的方向从利米轻推!
以下是我提出的工作解决方案:
此方法允许模块设置通知消息,然后由主服务器函数观察,当单击模块UI内的按钮时,触发UI更新新的通知消息。
再次感谢Limey为我指明了正确的方向,我希望这可以帮助其他人在未来面临类似的问题!