内容有光泽的动态tabpanel

时间:2017-06-23 08:09:14

标签: if-statement shiny tabpanel

我正在尝试构建一个动态闪亮的应用程序,如果满足条件,我想生成带有一些内容的tabpanel。我正在上传数据集,条件将在每个变量的class()上。这是一个小的复制品,条件可能是偶数/奇数(我从Stack上回答的问题中采用了这个例子)任何帮助都将深表感谢。

    library(shiny)
runApp(list(
  ui = pageWithSidebar(
    headerPanel('Dynamic Tabs'),
    sidebarPanel(
      numericInput("nTabs", 'No. of Tabs', 5)
    ),
    mainPanel(
      uiOutput('mytabs')  
    )
  ),
  server = function(input, output, session){
    output$mytabs = renderUI({
      nTabs = input$nTabs
      myTabs = lapply(paste('Tab', 1: nTabs), tabPanel)
      do.call(tabsetPanel, myTabs)
    })
  }
))

1 个答案:

答案 0 :(得分:0)

在下面的代码中,我只在数字为偶数时才添加tabpanel的数量。

 library(shiny)
   runApp(list(
     ui = pageWithSidebar(
       headerPanel('Dynamic Tabs'),
       sidebarPanel(
         numericInput("nTabs", 'No. of Tabs', 2)
       ),
       mainPanel(
         uiOutput('mytabs')  
       )
     ),
     server = function(input, output, session){

      observe({
        if(input$nTabs %% 2 == 0){
          output$mytabs = renderUI({
            nTabs = isolate(input$nTabs)
            myTabs = lapply(paste('Tab', 1: nTabs), tabPanel)
            do.call(tabsetPanel, myTabs)
          })
        }
      })

     }
   ))

希望它有所帮助!