[英]Dynamic UI in shiny: Can't print results from uiOutput created with renderUI
我正在使用Shiny中的renderUI根据用户的选择创建文本字段。 然后,用户填写字段,并在下面的简化版本中,目标是显示结果。 如何从uiOutput获取数据?
我认为该问题的答案将有所帮助: 如何在ui.R中的uioutput中获取值并将其发送回server.R? 但不适用于我的应用。
library(shiny)
ui <- fluidPage(
tabsetPanel(
tabPanel("data", fluid = TRUE,
sidebarLayout(
sidebarPanel(selectInput(inputId = "age2", label = "Select", choices = c("young", "old")),
actionButton("goButton", "Go!"),
uiOutput("variables")),
mainPanel(verbatimTextOutput("print"))))
)
)
server <- function(input, output, session) {
output$variables <- renderUI({
switch(input$age2,
"young" = numericInput("this", "This", value = NULL),
"old" = numericInput("that", "That", value = NULL)
)
})
x <- eventReactive(input$goButton, {
input$variables
})
output$print <- renderText({
x()
})
}
shinyApp(ui = ui, server = server)
我在下面修改了您的代码,似乎符合您的情况。 所做的更改是,numericInput()对象分别命名为“ this”和“ that”,并且您的eventReactve()对象正在侦听名为“ variables”的对象。 因为当值增加时您的numericInputs()会发生变化,因此这是React需要监听的内容。 我同时更改了名为“ vars”的条件numericInput()对象和eventReactive中的内容,以类似地侦听input $ vars
library(shiny)
ui <- fluidPage(
tabsetPanel(
tabPanel("data", fluid = TRUE,
sidebarLayout(
sidebarPanel(selectInput(inputId = "age2", label = "Select", choices = c("young", "old")),
actionButton("goButton", "Go!"),
uiOutput("variables")),
mainPanel(verbatimTextOutput("print"))))
)
)
server <- function(input, output, session) {
output$variables <- renderUI({
switch(input$age2,
"young" = numericInput("vars", "This", value = NULL),
"old" = numericInput("vars", "That", value = NULL)
)
})
x <- eventReactive(input$goButton, {
input$vars
})
output$print <- renderText({
x()
})
}
shinyApp(ui = ui, server = server)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.