如何获取 R Shiny 中所有输出元素的列表
How to get list of all output elements in R Shiny
如何获得无功输出元件列表?
没有问题的是:observe(print(reactiveValuesToList(input)) )
由于我不明白的原因而不起作用的是:observe( print(reactiveValuesToList(output)) )
对于一个大型复杂的应用程序,我正在编写一个智能代码,在 A 部分将所有反应值和所有输入保存为 rds
文件 saveRDS
我的 reactivevalues
是这样构建的; values <- reactivevalues()
B 部分使用 readRDS 加载所有这些值。 reactive values$x
被重新分配并且 input$x 通过实例 updateTextinput(session, inputID, value)
更新,出于某种奇怪的原因,它也适用于 selectInput
元素,但这与我面临的问题无关。
我的应用程序还包含 renderUI
个元素和 renderText
个元素
要更新这些元素,我需要设置选项:
outputOptions(output, x, suspendWhenHidden = FALSE)}
其中 x
是元素的名称。然而,我有许多这样的元素,并且想将此 suspendWhenHidden
选项的设置应用于列表。但是,尝试获取 outputs
的列表不起作用:
observe( print(reactiveValuesToList(output)) )
如何获取所有渲染元素/所有输出元素的列表?
一个演示应用,展示它如何用于输入,但不适用于输出元素
library(shiny)
rm(list = ls(), envir = globalenv()) ## to prevent cross over from old runs
ui <- dashboardPage(
dashboardHeader(title = "Dummy App"),
dashboardSidebar(
sidebarMenu(id = "tabs",
menuItem("HOME", tabName = "Home", icon = icon("home")),
menuItem("Page", tabName = "page1", icon = icon("pie-chart"))
) ),
dashboardBody(
tabItems(
tabItem(tabName = 'Home',
br(),
h1("WELCOME TO THE TEST APP", style = 'text-align: center;' )
),
tabItem(tabName = 'page1',
fluidRow(
uiOutput("BatchName")
)))))
server <- function(input, output, session) {
output$BatchName <- renderUI({ textInput(inputId ="BatchName", label = NULL , placeholder = "start") })
observe(print(reactiveValuesToList(input)) )
observe( print(reactiveValuesToList(output)) )
outputOptions(output, "BatchName", suspendWhenHidden = FALSE) ## without this line updating elements on page 2 and higher doesn't work as they are suspenWhenHidden = True by default
updateTextInput(session, inputId = "BatchName", value = "Updated")
}
shinyApp(ui, server)
查看 ?outputOptions
的文档,如果您不输入名称,您将获得所有可能的输出选项的列表。然后您可以迭代该列表以设置您想要的所有属性。
outs <- outputOptions(output)
lapply(names(outs), function(name) {
outputOptions(output, name, suspendWhenHidden = FALSE)
})
如何获得无功输出元件列表?
没有问题的是:observe(print(reactiveValuesToList(input)) )
由于我不明白的原因而不起作用的是:observe( print(reactiveValuesToList(output)) )
对于一个大型复杂的应用程序,我正在编写一个智能代码,在 A 部分将所有反应值和所有输入保存为 rds
文件 saveRDS
我的 reactivevalues
是这样构建的; values <- reactivevalues()
B 部分使用 readRDS 加载所有这些值。 reactive values$x
被重新分配并且 input$x 通过实例 updateTextinput(session, inputID, value)
更新,出于某种奇怪的原因,它也适用于 selectInput
元素,但这与我面临的问题无关。
我的应用程序还包含 renderUI
个元素和 renderText
个元素
要更新这些元素,我需要设置选项:
outputOptions(output, x, suspendWhenHidden = FALSE)}
其中 x
是元素的名称。然而,我有许多这样的元素,并且想将此 suspendWhenHidden
选项的设置应用于列表。但是,尝试获取 outputs
的列表不起作用:
observe( print(reactiveValuesToList(output)) )
如何获取所有渲染元素/所有输出元素的列表?
一个演示应用,展示它如何用于输入,但不适用于输出元素
library(shiny)
rm(list = ls(), envir = globalenv()) ## to prevent cross over from old runs
ui <- dashboardPage(
dashboardHeader(title = "Dummy App"),
dashboardSidebar(
sidebarMenu(id = "tabs",
menuItem("HOME", tabName = "Home", icon = icon("home")),
menuItem("Page", tabName = "page1", icon = icon("pie-chart"))
) ),
dashboardBody(
tabItems(
tabItem(tabName = 'Home',
br(),
h1("WELCOME TO THE TEST APP", style = 'text-align: center;' )
),
tabItem(tabName = 'page1',
fluidRow(
uiOutput("BatchName")
)))))
server <- function(input, output, session) {
output$BatchName <- renderUI({ textInput(inputId ="BatchName", label = NULL , placeholder = "start") })
observe(print(reactiveValuesToList(input)) )
observe( print(reactiveValuesToList(output)) )
outputOptions(output, "BatchName", suspendWhenHidden = FALSE) ## without this line updating elements on page 2 and higher doesn't work as they are suspenWhenHidden = True by default
updateTextInput(session, inputId = "BatchName", value = "Updated")
}
shinyApp(ui, server)
查看 ?outputOptions
的文档,如果您不输入名称,您将获得所有可能的输出选项的列表。然后您可以迭代该列表以设置您想要的所有属性。
outs <- outputOptions(output)
lapply(names(outs), function(name) {
outputOptions(output, name, suspendWhenHidden = FALSE)
})