[英]R Shiny: tabSet isn't rendered with renderUI inside a navbarPage
我是R和Shiny的新手。 我正在尝试在server.R
文件中创建tabPanel
,但没有成功,我认为这是由于在uiContent
内使用navbarPage
来获取tabPanel
时发生的错误。
这是我的ui.R
:
shinyUI(
navbarPage(
"test", id = "nav", collapsible = TRUE, position = "fixed-top",
# needed to keep fixed-top navbar from obscuring content
header = tags$style(type="text/css", "body {padding-top: 70px;}"),
uiOutput("content")
)
)
这是server.R
:
function(input, output) {
output$content <- renderUI({
tabPanel("tabA")
})
}
我创可贴的解决方案是包括navbarPage
在功能renderUI
,但我想知道是否有某种方式来呈现标签在server.ui
文件,同时保持navbarPage
在ui.R
文件。
经过长时间的研究,我认为这是不可能的。
在初始设置上调用navbarPage
,它将为所有tabPanels
创建超链接和占位符,输入列表会为其提供超链接和占位符。 (请参见下面的链接。) uiOutput
注入的任何其他添加都不会这样做,因为定义了navbarPage
(而不是内容)的HTML上下文在启动后是固定的。 任何注入只会影响选项卡中显示的内容。
您可能会说, shinyUI
知道shinyUI
反应性。 但是,由于Shiny中的反应性仅意味着快速重新评估,因此通过shinyServer
重建UI似乎是构建动态navbarPages
的合法“ Shiny”方法。
如果您仍然不满意,则可以搜索以下页面: Shiny Bootstrap Definitions 。 特别是在306-389行( navbarPage
)和689-834行( buildTabset
)中,您可以阅读有关实际函数定义的信息。 也许您可以模仿它们并添加额外的实用程序以使其正常运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.