【问题标题】:conditional renderUI and tabPanel有条件的 renderUI 和 tabPanel
【发布时间】:2013-12-11 15:19:20
【问题描述】:

我在 server.R 中有以下代码,我收到如下所示的错误。我看到其他examples 工作正常,我不知道为什么这不起作用?

   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

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    这应该可行:

    do.call(tabsetPanel, list(myTabs))
    

    甚至更简单:

    tabsetPanel(myTabs)
    

    【讨论】:

    • 这是有效的,但额外的文本显示了一些像div tab-pane active tab-5665-1div tab-pane Tab 2这样的东西,我也想有额外的(这是静态的而不是动态的)选项卡,我不能得到,它显示在同一个标​​签中。
    • 我可以使用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) 解决附加标签问题。但是,我仍然担心应用程序中出现的额外文本 div tabbable
    • @user2684128 我看不出与您的原始问题和您的 cmets 有任何关系。老实说,我迷路了。我不明白你的意思。
    • 谢谢,我想通了,因为 c() 而显示了额外的文本
    猜你喜欢
    • 1970-01-01
    • 2018-02-03
    • 2021-01-23
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 2020-02-17
    • 2018-03-02
    • 1970-01-01
    相关资源
    最近更新 更多