【问题标题】:Require input to be selected for pickerInput需要为 pickerInput 选择输入
【发布时间】:2018-10-24 00:30:23
【问题描述】:

如何要求用户从pickerInput 中选择输入?

这是一个基本的例子:

library("shiny")
library("shinyWidgets")

ui <- fluidPage(
  column(
    width = 4,
      pickerInput(inputId = "fruit", 
                  label = "Fruits", 
                  choices = c("Apple", "Mango", "Pear", "Orange"),
                  options = list(`actions-box` = T, 
                                 `none-selected-text` = "Please make a selection!"),
                  multiple = T)
        ))
server <- function(input, output) {
   output$res <- renderPrint({
   input$fruit
   })
}

shinyApp(ui = ui, server = server)

当我创建pickerInput 菜单时,我是否可以添加一个选项来设置它,以便菜单始终需要输入?

【问题讨论】:

  • req(input$fruit) 作为output$res 中的第一行可能会有所帮助。
  • 您可以在pickerInput 中添加一个selected=,这样它会根据选择进行初始化,因此没有选择不是一种选择?

标签: r input shiny


【解决方案1】:

您可以简单地更新它,我们也可以添加一个弹出窗口,指示必须选择至少 1 个元素

library("shiny")
library("shinyWidgets")

mychoices <- c("Apple", "Mango", "Pear", "Orange")

ui <- fluidPage(
  column(
    width = 4,
    pickerInput(inputId = "fruit", 
                label = "Fruits", 
                choices = mychoices,
                options = list(`actions-box` = T, `none-selected-text` = "Please make a selection!",selected = mychoices[1]),
                multiple = T)
  ),
  column(4,textOutput("res"))

)
server <- function(input, output,session) {

  data <- eventReactive(input$fruit,{
    if(is.null(input$fruit)){
      updatePickerInput(session,"fruit",choices = mychoices,selected = mychoices[1])
      showNotification("At least 1 should be selected", duration = 2,type = c("error"))
    }
    input$fruit
  },ignoreNULL = F)

  output$res <- renderPrint({
    req(data())
    data()
  })
}

shinyApp(ui = ui, server = server)

【讨论】:

  • 如果我阅读正确,它会告诉用户他们需要选择一个值,然后选择第一个值作为默认值?
  • 如果我只是想重新要求用户选择而不是默认选择一些东西怎么办。在我的完整代码中,我使用 UI 读取文件,因此我不能默认为任何值(除非我默认为所有值)。
猜你喜欢
  • 2018-09-14
  • 1970-01-01
  • 2010-12-21
  • 2018-12-14
  • 2020-08-20
  • 2019-01-21
  • 2019-01-31
  • 1970-01-01
  • 2019-12-13
相关资源
最近更新 更多