为什么不显示RShiny Shinyalert(回调)?

时间:2019-03-12 01:18:30

标签: r shiny

我正在使用Dean的shinyalert包中的示例:

library(shiny)
library(shinyalert)

shinyApp(
ui = fluidPage(
useShinyalert(),  # Set up shinyalert
actionButton("btn", "Greet")
     ),

server = function(input, output) {

observeEvent(input$btn, {
  shinyalert(
    "Enter your name", type = "input",
    callbackR = function(x) { message("Hello ", x) },
    callbackJS = "function(x) { alert('Hello ' + x); }"
  )
})
 }
 )

pic2 pic3

由于某种原因,github上显示的示例不适用于我的。当我删除callbackJS时。什么都没发生。输入名称,然后单击“确定”,但是链模式不起作用。

chainmodal

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为您必须使用:

    callbackR = function(value) { shinyalert(paste("Welcome", value))}

这也可能是文档中显示的内容:https://github.com/daattali/shinyalert#chaining

您的代码message("Hello ", x)实际上可以按设计工作,因为它会将消息打印到控制台。

完整代码如下:

library(shiny)
library(shinyalert)

shinyApp(
  ui = fluidPage(
    useShinyalert(),  # Set up shinyalert
    actionButton("btn", "Greet")
  ),

  server = function(input, output) {

    observeEvent(input$btn, {
      shinyalert(
        "Enter your name", type = "input",
        callbackR = function(value) { shinyalert(paste("Welcome", value))},
        callbackJS = "function(x) { alert('Hello ' + x); }"
      )
    })
  }
)