我想创建一个带有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())
})
})
修改
我已经包含了以下结果的图片:
答案 0 :(得分:6)
对于其他人的好处,由于存在命名冲突或屏蔽(因为它是一个常见的函数名称),包问题是validate()
函数的常见错误。例如,如果您正在使用qdap或jsonlite软件包,则调用validate()
可能无法调用该函数的闪亮版本。
要测试这是否是您的问题,请尝试将validate()
替换为shiny::validate()
或更改加载库的顺序。