我有一个弹出窗口,在应用程序首次运行时打开。我不喜欢弹出窗口一角的小 x,而是希望在弹出窗口底部有一个更大的“继续”按钮。但是,我无法在单击按钮后关闭窗口。请参阅下面的代码:
library(shiny)
library(shinyWidgets)
library(shinyMobile)
library(tidyverse)
library(shinyalert)
library(googleLanguageR)
library(mongolite)
ui <- f7Page(
title = "Home Page",
allowPWA = TRUE,
options = list(
theme = 'md',
dark = FALSE,
filled = TRUE,
pullToRefresh = FALSE,
color = '#005C5C'
),
f7TabLayout(
navbar = '',
f7Tabs(
animated = TRUE,
id = 'main_tab_layout',
f7Tab(
tabName = 'Main',
title = 'Main Screen'
)
)
),
uiOutput("popup_ui")
)
server <- function(input, output, session) {
popup_visible <- reactiveVal(TRUE)
output$popup_ui <- renderUI({
if (popup_visible()) {
f7Popup(
id = "my_popup",
title = "Popup Home",
f7Block(
h1("Popup Title"),
p("Welcome to the popup!"),
actionBttn("close_popup", "Continue")
)
)
}
})
observeEvent(input$close_popup, {
popup_visible(FALSE)
print("CLOSED")
})
}
shinyApp(ui = ui, server = server)
ChatGPT 提出了这个解决方案,并且正在努力提供替代方案。正在打印“CLOSED”,因此按钮单击正在注册,但弹出窗口没有关闭,也没有发生其他情况。
您可以将类
link popup-close
添加到按钮上,然后它就具有关闭弹出窗口的功能。下面我还将结束语x
放在角落里。
library(shiny)
library(shinyWidgets)
library(shinyMobile)
ui <- f7Page(
title = "Home Page",
allowPWA = TRUE,
options = list(
theme = 'md',
dark = FALSE,
filled = TRUE,
pullToRefresh = FALSE,
color = '#005C5C'
),
f7TabLayout(
navbar = '',
f7Tabs(
animated = TRUE,
id = 'main_tab_layout',
f7Tab(
tabName = 'Main',
title = 'Main Screen'
)
)
),
uiOutput("popup_ui")
)
server <- function(input, output, session) {
popup_visible <- reactiveVal(TRUE)
output$popup_ui <- renderUI({
if (popup_visible()) {
f7Popup(
id = "my_popup",
title = "Popup Home",
closeButton = FALSE,
f7Block(
h1("Popup Title"),
p("Welcome to the popup!"),
actionBttn("close_popup", "Continue", class = "link popup-close")
)
)
}
})
observeEvent(input$close_popup, {
popup_visible(FALSE)
})
}
shinyApp(ui = ui, server = server)