R 闪亮:有没有一种方法可以通过在tabsPanel()和#x27;s

R 闪亮:有没有一种方法可以通过在tabsPanel()和#x27;s,r,shiny,notifications,tabs,R,Shiny,Notifications,Tabs,我正在开发一个闪亮的应用程序,我想知道这是否可能,或者其他人是否能够通过在tabPanel()之间切换触发observeEvent() 由于@SriPaladugu和@DeanAttali shinyjs包,我有过启用和禁用tabPanel()某些操作的经验,但我不知道这两种方法/包在回答我自己的问题时有多大程度 我需要触发一个observeEvent(),以便在选项卡之间切换时执行removeNotification()并删除所有警告窗口 我想象中这样做的方式是: observeEvent(输

我正在开发一个闪亮的应用程序,我想知道这是否可能,或者其他人是否能够通过在
tabPanel()之间切换触发
observeEvent()

由于@SriPaladugu和@DeanAttali shinyjs包,我有过启用和禁用
tabPanel()
某些操作的经验,但我不知道这两种方法/包在回答我自己的问题时有多大程度

我需要触发一个
observeEvent()
,以便在选项卡之间切换时执行
removeNotification()
并删除所有警告窗口

我想象中这样做的方式是:

observeEvent(输入$tabSwitch{
removeNotification(上一条.warning.message)
})
但是,无法使切换选项卡成为eventExpr,从而使上述代码可执行


如果有人做过或知道如何做,我将不胜感激。

如评论中所述,您必须向
选项卡面板提供
id

以下是一个工作示例:

library(shiny)

ui <- fluidPage(
  mainPanel(
    tabsetPanel(id = "tabSwitch",
      tabPanel("Tab 1", br(), "Tab 1 content"),
      tabPanel("Tab 2", br(), "Tab 2 content"),
      tabPanel("Tab 3", br(), "Tab 3 content")
    ), br(),
    actionButton("warningBtn", "Generate Warning")
  )
)

server <- function(input, output, session) {

  observeEvent(input$warningBtn, {
    showNotification(ui = paste(Sys.time(), " - Warning!"), duration = NULL, closeButton = FALSE, id = "previousWarningMessage", type = "warning")
  })

  observeEvent(input$tabSwitch, {
    print(paste("You clicked tab:", input$tabSwitch))
    removeNotification("previousWarningMessage")
  })
}

shinyApp(ui, server)
库(闪亮)

ui您是否尝试过在
选项卡面板中提供
id
,并使用
observeEvent(输入$tabset\u id,{…})
?@ClancyStats我没有,但似乎可以使用。让我马上试试