我正在尝试在我的闪亮应用的validate
部分中使用observeEvent
语句,但是当条件不满足时,不会返回错误消息。它只是一个空白屏幕。这是一个可重复的例子:
require(shiny)
runApp(
list(
ui = pageWithSidebar(
headerPanel("test"),
sidebarPanel(
p("Demo Page."),
sliderInput("sldr", "Select a value", min = 0, max = 10, value = 5),
actionButton("btn", "Push Me!")
),
mainPanel(
verbatimTextOutput("text")
)
),
server = function(input, output){
observeEvent(input$btn, {
validate(
need(input$sldr > 5, "Require > 5")
)
output$text <- renderText({
"hello world"
})
})
}
)
)
现在,当我启动应用程序并按下Push Me!
操作按钮时根本没有任何事情发生(validate
正在停止处理)但没有返回错误消息,只是一个白色屏幕。如果我将所选值更改为6
,则会继续并打印该消息。
为什么validate
没有显示?
答案 0 :(得分:1)
我猜是因为observeEvent
没有将消息发送到的地方。将打印内部的打印按照您希望的方式进行操作,对我来说更有意义。
但它可能并不完全是你需要的。例如,不确定整个observeEvent
命令是否已终止。
require(shiny)
runApp(
list(
ui = pageWithSidebar(
headerPanel("test"),
sidebarPanel(
p("Demo Page."),
sliderInput("sldr","Select a value",min = 0,max = 10,value = 5),
actionButton("btn","Push Me!")
),
mainPanel(
verbatimTextOutput("text")
)
),
server = function(input,output) {
observeEvent(input$btn,{
output$text <- renderText({
validate(
need(input$sldr > 5,"Require > 5")
)
"hello world"
})
})
}
)
)
产量: