r - 如何从闪亮的 textInput 更新字符向量?
问题描述
每次单击按钮时,我都想将输入文本添加到 Shiny 应用程序中的向量中。这是我正在使用的示例:
library(shiny)
ui <- fluidPage(
textInput(inputId = "inquiry", label = "enter text"),
actionButton(inputId = "searchButton", label = "Run"),
verbatimTextOutput("queryList", placeholder = FALSE)
)
server <- function(input, output, session) {
queryList <- c()
observeEvent(input$searchButton, {
queryList[length(queryList)+1] <- input$inquiry
output$queryList <- renderPrint({
queryList
})
})
}
shinyApp(ui = ui, server = server)
因此,如果"item1"
输入并单击按钮,则"item2"
输入并再次单击按钮,queryList
应该看起来像c("item1", "item2")
,但它似乎只是替换"item1"
为"item2"
。我确定我错过了一些非常简单的东西......queryList[length(queryList)+1]
看起来有点奇怪,但它可以在非反应性环境中工作。
解决方案
使 queryList 反应性为我修复了它:
library(shiny)
ui <- fluidPage(
textInput(inputId = "inquiry", label = "enter text"),
actionButton(inputId = "searchButton", label = "Run"),
verbatimTextOutput("queryList", placeholder = FALSE)
)
server <- function(input, output, session) {
queryList <- reactiveValues()
queryList$values <- c()
observeEvent(input$searchButton, {
queryList$values[length(queryList$values) + 1] <- input$inquiry
})
output$queryList <- renderPrint({
if (!is.null(queryList$values)) {
queryList$values
}
})
}
shinyApp(ui = ui, server = server)
推荐阅读
- gridview - 使用 Linq-To-Sql 在 Select-New 中选择
- anaconda - Anaconda,无法安装最新版本的 asammdf
- jenkins - SonarQube Sonar.exclusions 参数不适用于 jenkins 和 SonarQube 服务器
- python - 具有旋转文件内容的 Python 文件处理程序
- azure - Azure 自动化帐户 PowerShell Runbook 中的绑定重定向
- java - Guava 的 EvictingQueue 的替代品,带有 @Beta 注释
- reactjs - 关于 Dan Abramov 关于 Presentational and Container Components 和 hooks 的更新
- javascript - Ajax 请求在 django 中更改对象的布尔值
- python - 为什么这个字典理解这么慢?请建议加快速度的方法
- javascript - 在 React 中拖动背景