保存shinyalert的变量输出

保存shinyalert的变量输出,shiny,shinyjs,Shiny,Shinyjs,我想保存shinyalert警告()的输出结果(真/假)。这篇文章有助于将值打印到console(),但我无法将值本身保存为变量 library(shiny) library(shinyalert) ui <- fluidPage( useShinyalert() ) server <- function(input, output) { shinyalert( title = "Warning", text = "Some warning",

我想保存shinyalert警告()的输出结果(真/假)。这篇文章有助于将值打印到console(),但我无法将值本身保存为变量

library(shiny)
library(shinyalert)

ui <- fluidPage(
  useShinyalert()
)


server <- function(input, output) {

  shinyalert(
    title = "Warning",
    text = "Some warning",
    closeOnEsc = FALSE,
    closeOnClickOutside = FALSE,
    type = "warning",
    showConfirmButton = TRUE,
    showCancelButton = TRUE,
    confirmButtonText = "OK",
    cancelButtonText = "Cancel",
    animation = TRUE,
    callbackR = mycallback
  )


}


shinyApp(ui, server)
库(闪亮)
图书馆(shinyalert)

ui在这种情况下,忘记函数,只需使用observeEvent观察警报,因为可以通过输入$shinyalert访问回调值

alert<-shinyalert(
title = "Warning",
text = "Some warning",
closeOnEsc = FALSE,
closeOnClickOutside = FALSE,
type = "warning",
showConfirmButton = TRUE,
showCancelButton = TRUE,
confirmButtonText = "OK",
cancelButtonText = "Cancel",
animation = TRUE,
callbackR = NULL
)

observeEvent(input$shinyalert,
value<<-input$shinyalert
)
编辑: 如果我们想在后续语句中使用该值,而不首先在服务器中执行任何其他操作,则必须使用callbackR函数

mycallback<-function(value){
if(value==T){
  print(value) #commands
} else if (value==F){
  print(value) #commands
}
}
以下是作者描述的链接。

正如这里提到的。。。
如果您从github安装最新版本,其中许多错误都将得到修复。查看报告的与此软件包相关的错误,我们不是唯一存在此问题的人。

如果我完全遗漏了一些内容,请道歉,但我无法评估“value”的价值。ObserveeEvent(输入$shinyalert,value@ben您没有错,请查看所做的编辑。似乎需要在程序中采取下一步以分配值,可能是一个错误,或者可能是ShinyalertThank@Chabo的性质,另一个问题是缺少{}observeEvent。理想情况下,我希望shinyalert的输出在同一observeEvent中,以确定后续if的标准statement@ben,如果在下一个语句之前您不打算在服务器中执行任何操作,那么我认为我们需要返回函数,因为我们无法将“value”推出。请参阅edits@ben我认为这一切都可能是由于全新软件包中的错误造成的。在callbackR函数中使用If/else,或在服务器中使用其他代码(例如按钮)来推动输入$value,都会起作用。也许如果您在警报上制作了自己的按钮,您就可以依次监视这些事件并观察事件,这也应该起到作用。
observeEvent(input$test,
print(value)
)
mycallback<-function(value){
if(value==T){
  print(value) #commands
} else if (value==F){
  print(value) #commands
}
}
shinyalert(
title = "What is your name?", type = "input",
callbackR = function(value) { shinyalert(paste("Welcome", value)) }
)