R 按钮在嵌套的sweet_警报中断开

R 按钮在嵌套的sweet_警报中断开,r,shiny,sweetalert,R,Shiny,Sweetalert,在这个应用程序中,我有两个嵌套的sweet_alert弹出窗口,它们类似于Shinny的modalDialogs 第一个警报内有一个按钮,用于激活第二个警报。然后弹出第二个警报,取代第一个警报 在第一轮中,一切正常。之后,第二个按钮停止工作 应采取的步骤: 单击按钮1->查看警报1 单击按钮2->警报1替换为警报2 按OK,关闭警报2 单击按钮1->查看警报1 单击按钮2->无任何事情发生 为什么第一轮后纽扣2会断裂?如何修复 library('shinyWidgets') ui = fluid

在这个应用程序中,我有两个嵌套的sweet_alert弹出窗口,它们类似于Shinny的modalDialogs

第一个警报内有一个按钮,用于激活第二个警报。然后弹出第二个警报,取代第一个警报

在第一轮中,一切正常。之后,第二个按钮停止工作

应采取的步骤:

  • 单击按钮1->查看警报1
  • 单击按钮2->警报1替换为警报2
  • 按OK,关闭警报2
  • 单击按钮1->查看警报1
  • 单击按钮2->无任何事情发生
  • 为什么第一轮后纽扣2会断裂?如何修复

    library('shinyWidgets')
    ui = fluidPage(
        actionButton("btn1", "Button1")
    )
    
    server = function(input, output, session) {
    
      observeEvent(input$btn1, {
            show_alert(
            title = "This is the first popup!",
            text = tags$div(
                actionButton("btn2", "Button2")
            ),
            html = TRUE,
            width = "80%"
            )
        })
    
        observeEvent(input$btn2, {
            show_alert(
            title = "This is the second popup!",
            html = TRUE,
            width = "80%"
            )
        })
    }
    runApp(shinyApp(ui, server))
    

    解决此问题的一种方法是使用
    closeSweetAlert()
    重置btn2。试试这个

    library('shinyWidgets')
    ui = fluidPage(
      actionButton("btn1", "Button1")
      #,verbatimTextOutput("t1")
    )
    
    server = function(input, output, session) {
      
      observeEvent(input$btn1, {
        show_alert(
          title = "This is the first popup!",
          text = tags$div(
            actionButton("btn2", "Button2")
          ),
          html = TRUE,
          width = "80%"
        )
      })
      
      output$t1 <- renderPrint(input$btn2)
      
      observeEvent(input$btn2, {
        closeSweetAlert(session = shiny::getDefaultReactiveDomain())
        show_alert(
          title = "This is the second popup!",
          html = TRUE,
          width = "80%"
        )
      })
    }
    runApp(shinyApp(ui, server))
    
    library('shinyWidgets')
    ui=fluidPage(
    动作按钮(“btn1”,“按钮N1”)
    #,逐字逐句输出(“t1”)
    )
    服务器=功能(输入、输出、会话){
    observeEvent(输入$btn1{
    显示警报(
    title=“这是第一个弹出窗口!”,
    text=tags$div(
    操作按钮(“btn2”、“按钮N2”)
    ),
    html=TRUE,
    宽度=“80%”
    )
    })
    产出$t1