从 Shiny 中的循环中获取值

Get the value from a loop in Shiny

我想从循环中获取循环变量。但是,renderText 函数使用最后一个循环的值。

library(shiny)
ui <- fluidPage(
    mainPanel("main panel",   textOutput("ts_txt1"), textOutput("ts_txt2"), textOutput("ts_txt3"), textOutput("ts_txt4"), textOutput("ts_txt5"), textOutput("ts_txt6"), textOutput("ts_txt7"), textOutput("ts_txt8"), textOutput("ts_txt9"), textOutput("ts_txt10"),)
)
server <- function(input, output) {
  observe({  
    for (i in 1:10) {
        output[[paste0("ts_txt",i)]]<- renderText(
        { paste0(i,"_" )})
    }
  })
}
shinyApp(ui = ui, server = server)

我想要的输出如下:

1_
2_
3_
4_
5_
6_
7_
8_
9_
10_

试试这个

library(shiny)
ui <- fluidPage(
  mainPanel("main panel",   textOutput("ts_txt1"), textOutput("ts_txt2"), textOutput("ts_txt3"), textOutput("ts_txt4"), textOutput("ts_txt5"), textOutput("ts_txt6"), textOutput("ts_txt7"), textOutput("ts_txt8"), textOutput("ts_txt9"), textOutput("ts_txt10"),)
)
server <- function(input, output) {
  observe({  
    for (i in 1:10) {
      local({
        i <- i
        output[[paste0("ts_txt",i)]]<- renderText({ paste0(i,"_" )})
      })
    }
  })
}

shinyApp(ui = ui, server = server)