如何解决Shiny 中嵌套的 Sweet_alert 中的按钮中断
在这个应用程序中,我有两个嵌套的 sweet_alert 弹出窗口,类似于 Shiny 的 modalDialogs。
第一个警报内有一个按钮可以激活第二个警报。然后会弹出第二个警报,替换第一个警报。
在第一轮一切正常。之后,第二个按钮停止工作。
要遵循的步骤:
- 点击 Button1 -> 查看警报 1
- 点击 Button2 -> 警报 1 替换为警报 2
- 按 OK,关闭 alert2
- 点击 Button1 -> 查看警报 1
- 点击 Button2 -> 什么都没有发生
为什么Button2在第一轮之后就坏了?以及如何修复?
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!",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!",width = "80%"
)
})
}
runApp(shinyApp(ui,server))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。