我正在开发一个闪亮的应用程序,其中我使用tabsetPanel
,当用户输入特定内容时生成。因此,我想使用renderUI
函数使一个选项卡面板出现/消失。
我的难点是tabsetPanel
元素(tabsetPanel
的参数)的数量也取决于用户的输入,这样有时我只需要一个,而其他时候我想要更多的tabPanels
。
如何做到呢?我尝试在tabsetPanel
参数中包含conditionPanel
或包含简单的if()...
条件,但是它(不出所料...)没有起作用。
我正在开发一个闪亮的应用程序,其中我使用tabsetPanel
,当用户输入特定内容时生成。因此,我想使用renderUI
函数使一个选项卡面板出现/消失。
我的难点是tabsetPanel
元素(tabsetPanel
的参数)的数量也取决于用户的输入,这样有时我只需要一个,而其他时候我想要更多的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)
})
}
))
nTabs = length(lags_7)
和my Tabs = lapply(sprintf('%s', lags_7), tabPanel)
)(可能的答案在此处:https://dev59.com/m1kS5IYBdhLWcg3w8aYL) - d8aninjanTabs = length(myPlots); myTabs = lapply(1:nTabs, function(x){tabPanel(paste0("Tab ",x), renderPlot(myPlots[[x]]))}); do.call(tabsetPanel, myTabs)
- Alpi Murányi