r-在闪亮的输入中设置一个默认值(以防用户在UI中删除它)



我正试图在我闪亮的应用程序中为numericInput()设置默认(或回退(值,以防止NAs

我知道NA稍后可以在server.r中处理,但我想知道是否有更优雅的方法可以在用户在ui中删除输入中的值时替换该值。

最好的方法是将validate包与need()一起使用(请参阅本SO线程(,但这里有一些更简单、更接近您要求的东西:

library(shiny)
ui <- fluidPage(
numericInput("obs", "Observations:", 10, min = 1, max = 100),
verbatimTextOutput("value")
)
server <- function(input, session, output) {

dafault_val <- 0

observe({
if (!is.numeric(input$obs)) {
updateNumericInput(session, "obs", value = dafault_val)
}
})

output$value <- renderText({ input$obs })
}
shinyApp(ui, server)

我建议使用库(shinyvalidate(,它是RStudios"官方的";解决方法:

library(shiny)
library(shinyvalidate)
ui <- fluidPage(
numericInput(
inputId = "myNumber",
label = "My number",
value = 0,
min = 0,
max = 10
),
textOutput("myText")
)
server <- function(input, output, session) {
iv <- InputValidator$new()
iv$add_rule("myNumber", sv_required(message = "Number must be provided"))
iv$add_rule("myNumber", sv_gte(0))
iv$add_rule("myNumber", sv_lte(10))
iv$enable()

output$myText <- renderText({
req(iv$is_valid())
input$myNumber
})

}
shinyApp(ui, server)

相关内容

最新更新