ShinyAlert идет не так с локальным изображением (порядок выполнения)
Я столкнулся со следующей проблемой
используя ShinyAlert *, если я добавляю imageUrl к сообщению, если это интернет-адрес URL, никаких проблем, сообщение появляется, изображение появляется мгновенно, а затем запускаются другие фрагменты кода, НО, если это изображение на моем жестком диске, это происходит: Сообщение без изображения открывает другой код после запуска сообщения, ТОГДА изображение появляется..
Я понятия не имею, почему, и я попробовал это на 3 разных компьютерах, а также протестировал с подходом js swal, та же проблема:
library(shiny)
library(sweetalertR)
library(shinyjs)
library(shinydashboard)
ui <- fluidPage(
shinyjs::useShinyjs(),
useShinyalert(),
textInput("expr", label = "Enter an R expression",
value = "bio",width="600px"),
actionButton(inputId ="mybutton", "Run")
)
server <- function(input, output, session) {
shinyEnv <- environment()
observeEvent(input$mybutton, {
print(getwd())
shinyalert(title = 'hello', imageUrl ="insert http url or local disk path/name.png", imageSize = "80x80")
for (i in 1:50000){ print(i) ### see if picture in message shows up before this code runs
}
})
}
shinyApp(ui = ui, server = server)
ДОПОЛНИТЕЛЬНЫЙ пример, как я кодирую его с помощью jscode
swal5 = function(params) {
var defaultParams = {
title : null,
text : null,
type : null
};
params = shinyjs.getParams(params, defaultParams);
swal({title : params.title, text : params.text, type : params.type,
showCancelButton : true,
cancelButtonText : "No, cancel please!",
showConfirmButton : true,
confirmButtonText : "Yes, merge the files!",
closeOnCancel : true,
closeOnConfirm: false},
evalFunction = function(isConfirm){
if (isConfirm === true) {
var val1= 1;
Shiny.onInputChange("MergeRaw_OP", [val1, Math.random()]);}
});
};
1 ответ
Ваш код (по крайней мере, первый, второй не пробовал) на самом деле неверен и содержит много дополнительного кода, который ничего не делает. Нет необходимости загружать блестящие, Shinydashboard, чтобы сохранить окружающую среду, и sweetalertR
это неправильный пакет. Когда я пытаюсь запустить правильную и минимальную версию этого фрагмента кода, он работает для меня.
library(shinyalert)
library(shiny)
ui <- fluidPage(
useShinyalert(),
actionButton(inputId ="mybutton", "Run")
)
server <- function(input, output, session) {
observeEvent(input$mybutton, {
shinyalert(title = 'hello', imageUrl ="http://deanattali.com/img/deanimg.jpeg", imageSize = "80x80")
for (i in 1:50000){ print(i) }
})
}
shinyApp(ui = ui, server = server)