[英]R Shiny SweetAlert - Display alert depending on user input
我想根據正確的密碼輸入和文件上傳向應用用戶發送 SweetAlert。
我的應用程序要求用戶使用fileInput
小部件上傳受密碼保護的 Excel 文件,並使用passwordInput
小部件接受密碼:
# file select
output$file_select <- renderUI({
fileInput("file_select","Import File:",buttonLabel = "Select",
multiple = FALSE, accept = ".xlsx",placeholder = "No file selected")
})
# password input
output$pword_input <-renderUI({
passwordInput("pword_input","Password:", "", placeholder = "Enter Excel password")
})
Excel 表的讀取由excel.link
處理,並創建一個名為raw.data()
的反應性 object :
raw.data <- reactive({
# Read Excel file
data_file <- input$file_select
df <- xl.read.file(data_file$datapath,
password = input$pword_input)
return(df)
})
sendSweetAlert
的文檔似乎只提供了在按下操作按鈕時發送警報的示例。 但是,我希望observeEvent
尋找正確的密碼輸入。
我無法將密碼存儲在應用程序中,因此我當前設置了觸發observeEvent
的 observeEvent 以查找反應式 object raw.data()
的創建,作為輸入正確密碼的指示:
observeEvent(raw.data(), {
sendSweetAlert(
session = session,
title = "Password Accepted",
type = "success"
)
})
這在一定程度上起作用。 如果輸入了正確的密碼,那么一旦根據需要創建了反應式 object,就會顯示 SweetAlert。 但是,輸入錯誤的密碼會使應用程序崩潰。
我希望有人可以幫助以正確的方式進行設置。 我想我的錯誤是在使用observeEvent? 但是,如果不存儲密碼,我不確定如何實現我的目標。
提前致謝
如果密碼不正確, xl.read.file
會引發錯誤。 所以你可以嘗試這樣的事情(未經測試):
raw.data <- reactive({
# Read Excel file
data_file <- input$file_select
df <- try(xl.read.file(data_file$datapath,
password = input$pword_input))
return(df)
})
observeEvent(raw.data(), {
if(inherits(raw.data(), "try-error")) {
sendSweetAlert(
session = session,
title = "Wrong password",
type = "error"
)
} else {
sendSweetAlert(
session = session,
title = "Password Accepted",
type = "success"
)
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.