我正在开发一个shiny 的应用程序,其中我使用tabsetPanel,当用户输入某些特定的输入时生成.因此,我想使用renderUI函数使tabsetPanel出现/消失.

我现在的挣扎是number of tabPanel个元素(tabsetPanel的论点)also depends on user input,顺便说一句:有时我需要1个,有时我想要更多tabPanels个.

怎么做?我试着在tabsetPanel参数中包含conditionPanel或简单if()...条件,但它(毫不奇怪…)没用.

推荐答案

干得好.这段代码相当不言自明.

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)
    })
  }
))

R相关问答推荐

是否可以通过另一个DF的内容过滤数据帧列表?

R:随机抽取所有可能排列的样本

在R底座中更改白天和夜晚的背景 colored颜色

大规模重新标记haven标签数据

selectInput不返回ALL,并将因子转换为shiny 的数字

如何利用模型函数在格图中添加双曲/指数曲线

R for循环返回到先前值

然后根据不同的列值有条件地执行函数

如何使下一个按钮只出现在Rshiny 的一段时间后?""

在df中保留原始变量和新变量

R中插入符号训练函数的中心因子和尺度因子预测

如何从R ggplot图片中获取SVG字符串?

从R中的对数正态分布生成随机数的正确方法

悬崖三角洲超大型群数计算导致整数溢出

使用geom_iles在一个切片中包含多个值

使用R将简单的JSON解析为嵌套框架

按组跨多列创建伪变量

如何为混合模型输出绘制不同的线型?

通过R:文件名未正确写入[已解决]将.nc文件转换和导出为.tif文件

在同一单元格中创建包含整数和百分比的交叉表