首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在闪亮的输入中设置默认值(如果用户在UI中删除它)

在闪亮的输入中设置默认值(如果用户在UI中删除它)
EN

Stack Overflow用户
提问于 2022-01-14 12:17:28
回答 2查看 299关注 0票数 1

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-14 13:04:40

最好的方法是将validate包与need()一起使用(请参阅此所以线),但这里有一些更简单、更接近您所要求的内容:

代码语言:javascript
运行
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2022-01-14 13:39:36

我建议使用库(光验证)来解决这个问题,它是RStudios“正式”方式

代码语言:javascript
运行
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70710454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档