我想创建一个带有3个复选框的Shiny UI供用户选择.但是,如果没有选中任何框,我想提示用户输入错误消息.
我已经尝试使用validate函数来解决这个问题(如下所示),但它目前无法正常工作.任何人都可以指出我的代码有什么问题,并告诉我如何解决它?
shinyUI(fluidPage(sidebarLayout(
sidebarPanel(checkboxGroupInput(
"variable", "Select An Option:",
c(
"One",
"Two",
"Three"
)
)),
mainPanel(textOutput("text"))
)))
shinyServer(function(input, output) {
text.data <- reactive({
validate(need(!is.null(input$variable),
"Please select an option"))
print(input$variable)
})
output$text <- renderPrint({
print(text.data())
})
})
Run Code Online (Sandbox Code Playgroud)
编辑
我已经包含了以下结果的图像:
C W*_*C W 10
对于其他好处,validate()由于存在命名冲突或屏蔽(因为它是如此常见的函数名称),包问题是函数的常见错误.例如,如果您正在使用qdap或jsonlite包,那么调用validate()可能不会调用该函数的闪亮版本.
为了测试,如果这是你的问题,请尝试更换validate()用shiny::validate()或改变顺序加载存储库.