首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免具有相同名称的navbarMenu条目的最闪亮的歧义?

如何避免具有相同名称的navbarMenu条目的最闪亮的歧义?
EN

Stack Overflow用户
提问于 2021-08-17 14:49:23
回答 1查看 24关注 0票数 0

这是我非常简单的闪亮的app.R。正如您所看到的,在两个顶部菜单项下有两个具有相同名称的子菜单条目:

代码语言:javascript
复制
library(shiny)
ui <- basicPage(
  navbarPage("App", id = "nav",
    navbarMenu("Top 1", # id = "top1",
      tabPanel("Sub 1", "Top 1, Sub 1"),
      tabPanel("Sub 2", "Top 1, Sub 2")
    ),
    navbarMenu("Top 2", # id = "top2",
      tabPanel("Sub 1", "Top 2, Sub 1"),
      tabPanel("Sub 2", "Top 2, Sub 2")
    )
  )
)
server <- function(input, output, session) {}
shinyApp(ui = ui, server = server)

我可以运行这个应用程序,并访问所有的子菜单条目非常好使用shiny::shinyAppDir(".")

但是,当使用shinytest::recordTest(".")记录通过所有选项卡的测试时,记录的脚本如下所示:

代码语言:javascript
复制
app <- ShinyDriver$new("../../")
app$snapshotInit("mytest")

app$setInputs(nav = "Sub 2")
app$setInputs(nav = "Sub 1")
app$setInputs(nav = "Sub 2")
app$snapshot()

您立即看到了问题:从调用中,不清楚我选择了哪些顶级菜单条目(为了记录,我选择了前1、前2、前2)。

如果不重新命名子菜单条目,我如何处理这个问题?正如您在上面看到的那样,我尝试将一个id添加到navbarMenu中,但是这只导致了

选项卡都应该是未命名的参数,但有些是命名的: id

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-17 15:05:03

经过一番挖掘,我发现了这个:

tabsetPanel报告该选项卡被选中时应该发送的值。如果省略并且tabsetPanel有一个id,那么这个标题将被使用。

https://shiny.rstudio.com/reference/shiny/0.14/tabPanel.html

因此,一个解决办法是:

代码语言:javascript
复制
library(shiny)
ui <- basicPage(
  navbarPage("App", id = "nav",
    navbarMenu("Top 1",
      tabPanel("Sub 1", "Top 1, Sub 1", value = "top1/sub1"),
      tabPanel("Sub 2", "Top 1, Sub 2", value = "top1/sub2")
    ),
    navbarMenu("Top 2",
      tabPanel("Sub 1", "Top 2, Sub 1", value = "top2/sub1"),
      tabPanel("Sub 2", "Top 2, Sub 2", value = "top2/sub2")
    )
  )
)
server <- function(input, output, session) {}
shinyApp(ui = ui, server = server)

这给

代码语言:javascript
复制
app <- ShinyDriver$new("../../")
app$snapshotInit("mytest")

app$setInputs(nav = "top1/sub2")
app$setInputs(nav = "top2/sub1")
app$setInputs(nav = "top2/sub2")
app$snapshot()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68819510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档