如何在R减价中选择特定的页签? [英] How to select a specific tab in R Markdown?

查看:12
本文介绍了如何在R减价中选择特定的页签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要从R Markdown文档(具有闪亮的运行时)的tabset中选择一个选项卡。

我遵循How to select a specific tabPanel in Shiny中的示例,并尝试使其适应R Markdown。我将id添加到选项卡集/选项卡中,并在updateTabsetPanel()调用中使用它们,但似乎不起作用。(在检查结果仪表板中的各个HTML元素时,我使用了弹出的名称。)

如何通过单击按钮从tabset中选择";chart3";选项卡?

编辑:我需要能够以编程方式选择特定选项卡(例如,通过observeEvent()调用),而不仅仅是在启动时。

---
title: "Tabset Column"
output: flexdashboard::flex_dashboard
runtime: shiny
---
    
Column 
-------------------------------------
    
### Chart 1
    
```{r}
actionButton("switch_tab", "Switch tab", width=200)
```
   
Column {#mytabset .tabset}
-------------------------------------
   
### Chart 2

```{r}
```   
 
### Chart 3 {#mytab}
    
```{r}
observeEvent(input$switch_tab, {
    updateTabsetPanel(session, inputId = "section-mytabset", selected = "#section-mytab")
})
```

推荐答案

可以将actionButton本身包装在tags$a中并链接到#section-mytab,而不是observeEvent。请注意,使用runtime: shiny时,必须在选项卡名之前添加section-

这是否解决了您的问题,或者您是否需要它才能与observeEvent一起使用?

---
title: "Tabset Column"
output: flexdashboard::flex_dashboard
runtime: shiny
---

Column 
-------------------------------------
  
### Chart 1
  
```{r, echo = FALSE}
tags$a(href = "#section-mytab",
  shiny::actionButton("btn1", "go to mytab")
       )
```

Column {.tabset}
-------------------------------------
    
### Chart 2

```{r}

```   
  
### Chart 3 {#mytab}
  
```{r}

```

如果需要,可以使用{shinyjs}将上述逻辑与observeEvent和不可见的actionButton组合在一起。这里的诀窍在于,我们仍然使用actionButton来触发选项卡。但是实际的按钮没有显示display: none(重要的是,该按钮没有设置为hidden,因为这会阻止它被点击)。然后,我们创建另一个actionButton,它由observeEvent观察。这可能会触发其他计算等,并最终触发未显示的actionButton上的click。如果您有更多的页面,并且想要从页面1跳到(比方说)页面2的选项卡3,那么我们将需要两个click:一个更改页面,另一个激活选项卡。但我们都可以在observeEvent内触发此操作。它很粗糙,看起来不是很好的代码,但从好的方面来说,即使没有自定义的javascript函数,它也可以工作。

---
title: "Tabset Column"
output: 
flexdashboard::flex_dashboard
runtime: shiny
---

```{r global, echo = FALSE}
library(shiny)
library(shinyjs)
useShinyjs(rmd = TRUE)
```


Column 
-------------------------------------
  
### Chart 1

```{r, echo = FALSE}
observeEvent(input$btn1, {
  # do some calculations here
  click("btn2")})
 
shiny::actionButton("btn1", "do something")

tags$a(href = "#section-mytab",
  # set this button to `display: none;` but *not* to `hidden`
  shiny::actionButton("btn2", "go to mytab", style = "display: none")
  )
```

Column {.tabset}
-------------------------------------

### Chart 2

```{r}

```   
  
### Chart 3 {#mytab}
  
```{r}

```

这篇关于如何在R减价中选择特定的页签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆