小编Ber*_*end的帖子

防止 pickerInput 在每次选择某些内容时更新(R、Shiny)

我已经搜索了 stackoverflow 和整个网络,但我找不到这个看似简单的问题的好答案。

情况如下:

  • 我有一个闪亮的应用程序,与数据库连接
  • 我有多个用户输入(Pickerinputs),用户可以在其中选择多个参数
  • 用户输入都是相互依赖的

出现的问题如下:

  • 如果用户勾选多个汽车品牌(例如雷诺、标致和宝马),则链接到此选择的选择器输入(这些品牌的特定汽车型号)将更新三次。由于许多选择器输入相互链接,这会造成混乱的用户体验。

需要解决方案

  • 我认为解决方案很简单:pickerinput 只需要在输入关闭后发送选定的值即可;它不需要在用户每次选择后发送值(并触发更新)。来自AirdatePickerInputShinywidgets 的具有此特定功能(update_on=c('change', 'close')。我需要的是我的 pickerInput在“关闭”时更新。这样结果值仅发送回服务器一次。

示例:用户界面

ui <- fluidPage(
  
  # Title panel
  fluidRow(
    column(2,
           wellPanel(
           h3("Filters"),
           uiOutput("picker_a"),
           uiOutput("picker_b"),
           )
    ),
  )
)
Run Code Online (Sandbox Code Playgroud)

服务器

server <- function(input, output, session) {
  
  # Start values for each filter  
  all_values_for_a <- tbl(conn, "table") %>%
    distinct(a) %>%
    collect()
  
  all_values_for_b <- tbl(conn, "table") %>%
    distinct(b) %>%
    collect()
  
  output$picker_a <- renderUI({
    pickerInput(
      inputId = "picker_a",
      label = "a:", 
      choices …
Run Code Online (Sandbox Code Playgroud)

javascript r shiny

5
推荐指数
1
解决办法
1150
查看次数

标签 统计

javascript ×1

r ×1

shiny ×1