The idea
根据selectizeInput()
输入 我想显示数据框中的一行数据。然而,某些变量只有在其值不存在时才会显示。FALSE
. selectizeInput()
包括一个占位符提示,这是非常理想的。
问题
我开发的代码实际上可以工作,但直到选择任何选项才会显示
if 中的错误:参数长度为零
在应用程序内部,这是非常不可取的。
示例代码
library("shiny")
# simulate data
data <- data.frame(
name = c("Adam", "Debbie", "Lancelot", "Dracula"),
age = c(21, 48, 72, 1023),
coward = c("yes, a coward", "just a little bit", FALSE, "too old to be a coward")
)
ui <- fluidPage(
# selectize
selectizeInput(
inputId = "input",
label = NULL,
choices = c("..." = "", as.character(data[, "name"])),
selected = NULL,
multiple = FALSE
),
# show output
uiOutput(outputId = "output")
)
server <- function(input, output, session){
output$output <- renderUI({
div(
# show name
data[which(input$input == data[, "name"]), "name"], br(),
data[which(input$input == data[, "name"]), "age"], br(),
# if "coward" is not FALSE than show its value
if(data[which(input$input == data[, "name"]), "coward"] != FALSE){
data[which(input$input == data[, "name"]), "coward"]
}
)
})
}
shinyApp(ui, server)
尝试过的解决方案
尝试过包裹if()
中的声明suppressWarnings()
or suppressMessages()
。不会改变任何东西。也尝试过放!is.null(input$input) &&
inside if()
条件但它只是将初始误差更改为
错误:需要 TRUE/FALSE 时缺少值
问题
如何写条件使得shiny
在选择选项之前不会返回错误selectizeInput()
?
任何其他更通用的黑客攻击shiny
不在应用程序内显示错误消息?
我觉得我在这里遗漏了一些明显的东西......