r - ObserveEvent 和 textInput,令人困惑的行为
问题描述
具有以下简单的应用程序:
library("shiny")
ui <- fluidPage(
uiOutput('model'),
textInput('search', 'Look for a model')
)
server <- function(input, output, session) {
options <- c('a', 'b', 'c', 'd')
output$model <- renderUI({
checkboxGroupInput("model",
"Select a model:",
options,
selected='a')
})
observeEvent(input$search,{
updateCheckboxGroupInput(session,"model",
"Select a model:",
options[grep(input$search, options)])
})
}
shinyApp(ui = ui, server = server)
我想向a
已经预选的用户显示选择。稍后,我想CheckboxGroupInput
仅在用户开始输入搜索框后更新。但是,复选框似乎会立即更新,并且a
不会显示预选的选项。
为什么不observeEvent
等待与 的交互inputText
?有什么想法可以解决这个问题并等到用户开始输入(我不想使用按钮)?
解决方案
防止在 Shiny 中对应用程序加载执行观察提供了答案。将observeEvent
不会在开始时执行。
编辑:(按照@lbusett 的建议做出明确的回答)
ignoreInit = TRUE
在调用中设置可以observeEvent
解决问题。
推荐阅读
- r - 无法创建将 R 连接到 Twitter 的令牌
- django - 使用 Django 在 Google 图表表中传递元组
- c# - 我需要帮助让这把石头剪刀布随机
- swiftui - 从 UIKit 更新 @State var
- java - 飞碟:rowsapn 和 page-break-inside
- android - 我的 GestureDetector 中的“上下文”有问题吗?
- c - 带有 SNDRV_PCM_IOCTL_WRITEI_FRAMES 的 ALSA 断管
- excel - Excel VBA 代码引发运行时错误“13”:类型不匹配错误
- android - Android MVVM:无法实例化视图模型
- raspberry-pi - 使用 Raspberry PI 和公共 wifi 进行物联网发现的 UDP 广播