【发布时间】:2019-06-26 17:50:48
【问题描述】:
我有多个动态文本元素。元素的数量由下拉菜单决定。我想将每个动态文本元素组合到一个列表中,但遇到了困难。
我尝试创建一个单独的反应对象来组合项目。
server <- function(input,output) {
#define number of names and dynamic names
output$input_ui1<- renderUI({
num<- as.integer(input$num)
lapply(1:num,
function(i) {
textInput(inputId = paste0("name",i ),
label= paste0("Name",i),
value= "enter name")
})
})
#Names into list
names_list<-NULL
reactive({
for (i in 1:input$num ) {
name<- input[[paste0("name",i)]]
names_list<-c(names_list, name)
}
})
#access first item of list of names
output$test_text<-reactive({
(names_list[1])
})
#access first name
output$test_text2<-reactive({
(input[["name1"]])
})
}
ui<- fluidPage(sidebarLayout(
sidebarPanel(
selectInput("num","select number of names",choices= seq(1, 10, 1)),
uiOutput("input_ui1"),
dateRangeInput("daterange1", "Date range:", start = "2001-01-01", end = "2010-12-31"),
uiOutput("test_text"),
uiOutput("test_text2")
),
mainPanel()
))
shinyApp(ui=ui, server=server)
我的用户界面“test_test”和“test_test2”中有两个测试文本。我的期望是两者都应该显示相同的内容,但只有第二个显示的是预期的名字。
【问题讨论】:
标签: r shiny shiny-reactivity