首页 > 解决方案 > 在 Rmarkdown Shiny 应用程序中使用服务器端 updateSelectizeInput

问题描述

我正在尝试使用 updateSelectizeInput 服务器端将大量地址加载到 Rmarkdown 格式的 Shiny 应用程序中的 selectizeInput 框中。一切正常,但是当您选择过滤值时,它似乎正在重新加载 NULL 值。这是一个可重现的例子。任何帮助将不胜感激。谢谢!

---
title: "car_example"
output: html_document
runtime: shiny
---

```{r echo=FALSE}
df <- mtcars

output$uiaddress <- renderUI({
selectizeInput(
  'address', label = "Address", choices = NULL
)
  })

observeEvent(input$address, {updateSelectizeInput(session, 'address', 
choices = df$hp, server = TRUE)
})
```

## SelectizeInput

```{r echo=FALSE}
uiOutput("uiaddress")
```

标签: rshinyr-markdown

解决方案


我可以通过添加 ignoreInit 和 once 到 observeEvent 的末尾来解决这个问题

observeEvent(input$address, {updateSelectizeInput(session, 'address', 
choices = df$hp, server = TRUE)
}, ignoreInit = TRUE, once = TRUE)

推荐阅读