r - 如何从最初不可见的动态生成的 UI 元素中访问值
问题描述
如果您运行此应用程序“a”,则在选择 UI 选项卡并生成填充“input$select”的 UI 元素之前,不会出现默认选定值。如何在加载应用程序时强制创建此元素,而无需单击面板对其进行初始化以访问其默认值。
library(shiny)
library(shinydashboard)
ui <- fluidPage(
tabsetPanel(
tabPanel(
title = "landing",
"Stuff"
),
tabPanel(
title = "UI",
uiOutput("select")
)
),
textOutput("out")
)
server <- function(input, output, session) {
output$select <- renderUI(
selectInput(
"select", "Selector:", choices = c("a", "b"), selected = "a"
)
)
output$out <- renderText(input$select)
}
shinyApp(ui, server)
解决方案
您可以使用suspendWhenHidden = FALSE
来自的参数outputOptions
。我不得不在哪里放置outputOptions
(它在函数开始时server
不起作用)。但是,它仍然需要一点时间来加载,所以也许可以进一步优化它。
library(shiny)
library(shinydashboard)
ui <- fluidPage(
tabsetPanel(
tabPanel(
title = "landing",
"Stuff"
),
tabPanel(
title = "UI",
uiOutput("select")
)
),
textOutput("out")
)
server <- function(input, output, session) {
output$select <- renderUI({
selectInput(
"select", "Selector:", choices = c("a", "b"), selected = "a"
)
})
output$out <- renderText(input$select)
outputOptions(output, "select", suspendWhenHidden = FALSE)
}
shinyApp(ui, server)
推荐阅读
- c++ - 在已经模板可变的函数中传递可变参数
- db2 - DB2 LUW 并行作业执行
- python - 使用数组时出现索引错误!Python
- css - 在 Woocommerce 结帐中删除付款方式上方的额外项目符号
- python - TensorFlow:尽管开始排队运行,但 Eval 永远不会结束
- java - Android - RecyclerView:我需要为每个 recyclerView 使用适配器和 ItemObject 吗?如何分别处理点击?
- redis - Redis:转储数据库并删除转储的键/值对
- php - PHP 以随机顺序输出我的 XML 提要
- scala - 带有案例类的抽象类的scala circe编码器/解码器
- mqtt - 订阅主题在 mqtt broker 中应该如何组织?