使用for循环动态调用闪亮模块

问题描述

我创建了一个闪亮的模块,该模块显示的textInputs与一行中另一个变量的长度一样多。

如果我手动一个接一个地调用这些模块,它就可以正常工作:

library(shiny)
library(shinydashboard)

scenarios <- c("Scenario 1","Scenario 2","Scenario 3","Scenario 4")

scenarioInput <- function(id,nomScenario){
  ns <- NS(id)
  textInput(inputId = ns("scenario"),label=nomScenario)
}

box1 <- shinydashboard::box(width=NULL,status="primary",align="center",HTML("<h1><strong>Scénarios</strong></h1>"),splitLayout(
              cellWidths = rep(paste0(100/length(scenarios),"%"),length(scenarios)),cellArgs = list(style = "padding: 2%"),scenarioInput(id=1,nomScenario=scenarios[1]),scenarioInput(id=2,nomScenario=scenarios[2]),scenarioInput(id=3,nomScenario=scenarios[3]),scenarioInput(id=4,nomScenario=scenarios[4])
            )
)

body <- dashboardBody(
  fluidRow(
    column(width = 12,box1,)
  )
)


ui <- dashboardPage(
  dashboardHeader(),dashboardSidebar(),body
)

shinyApp(ui = ui,server = function(input,output) { })

但是,如果我尝试通过for循环调用这些模块,则屏幕上不会显示textInput框。

box1 <- shinydashboard::box(width=NULL,for (i in 1:length(scenarios)){scenarioInput(id=i,nomScenario=scenarios[i])}
            )
)

有人会知道使这项工作有效的方法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)