2013-12-11 63 views
0

我在server.R中有以下代碼,我得到如下所示的錯誤。我已經看到其他examples哪些工作正常,我不知道爲什麼這不起作用?條件renderUI和tabPanel

output$mytabs = renderUI({ 
if(some_condition) 
     myTabs = c(tabPanel('Title 1', h4("Tab 1"), htmlOutput("tab_data_1")), 
        tabPanel("Title 2",h4("Tab 2"), verbatimTextOutput("tab_data_2"))) 
if(some_other_condition) 
     myTabs = c(tabPanel('Title 3', h4("Tab 4"), htmlOutput("tab_data_3")), 
        tabPanel("Title 2",h4("Tab 2"), verbatimTextOutput("tab_data_2"))) 

     do.call(tabsetPanel, myTabs) 
# I also tried 
# do.call(tabsetPanel, c("tabpanel", myTabs)) 
     }) 

Error in `*tmp*`$attribs : $ operator is invalid for atomic vectors 

回答

1

這應該工作:

do.call(tabsetPanel, list(myTabs)) 

或者更簡單:

tabsetPanel(myTabs) 
+0

這是工作,但附加的文字顯示出來像'DIV標籤窗格主動製表一些事情5665-1'和'div tab-pane Tab 2',我也想要額外的(這是靜態不動態)選項卡,我無法得到它,它顯示在同一個選項卡中。 – BigDataScientist

+0

我可以通過'tabs = c(tabsetPanel(tabPanel('Title 1',h4''Tab 1'),htmlOutput('tab_data_1')), tabPanel('Title 2',h4(' Tab 2'),verbatimTextOutput('tab_data_2'))))''mainPanel(tabs)''。但是,我仍然擔心在應用程序 – BigDataScientist

+0

@ user2684128中顯示額外的文本'div tabbable'我沒有看到與原始問題和您的評論有任何關係。老實說我迷路了。我不明白你的意思。 – agstudy