【问题标题】:Dynamically show/hide input with shinyjs and flexdashbord使用 shinyjs 和 flexdashbord 动态显示/隐藏输入
【发布时间】:2017-05-18 23:25:18
【问题描述】:

点击标签时尝试更新 flexdashboard 中的 侧边栏。无法让它工作。

---
title: "Test Sidebar"
output: 
  flexdashboard::flex_dashboard:
     orientation: rows
 runtime: shiny
---

```{r setup}
library(flexdashboard)
library(shiny)
library(shinyjs)
useShinyjs(rmd = TRUE)
```
Sidebar {.sidebar data-width=250}
=======================================================================

```{r}
div(id = "one", selectInput("input1",label= "Show Always",choices=c("a","b","c")))    
div(id = "two",selectInput("input2",label = "Show only on Tab 1", choices=c("d","e","f")))
```

<!-- Update the sidebar based on the tab chosen. Generated HTML code shown for tabs-->

Tab 1 <!-- <a href="#section-tab-1" aria-expanded="true" data-toggle="tab"> -->
=======================================================================
```{r}
useShinyjs(rmd = TRUE)
shinyjs::onclick("#section-tab-2",shinyjs::hide(id = "two"))
shinyjs::onclick("#section-tab-1",shinyjs::show(id = "two"))
```

Tab 2 <!-- <a href="#section-tab-2" aria-expanded="true" data-toggle="tab"> -->
=======================================================================
```{r}
useShinyjs(rmd = TRUE)
actionButton("hideSlider", "Hide Input Two")
observeEvent(input$hideSlider, {
     shinyjs::toggle(id = "two", anim = TRUE)
    })
```

与actionButton() 和observerEvent() 一起工作正常。任何建议表示赞赏。

【问题讨论】:

  • 尝试在您的链接中添加一个“id”,然后在 onclick 中调用该 id。

标签: javascript r shiny shinyjs flexdashboard


【解决方案1】:

几个cmets:

  • 你只需要调用useShinyjs()一次,不需要在每个代码块中调用它

  • onclick() 获取元素的 ID。不是选择器 - ID。这意味着您调用onclick("element") 而不是onclick("#element")

  • 如果您查看仪表板生成的 HTML,您会发现没有 id 为“section-tab-2”的元素,因此您尝试执行的操作不起作用

  • 在常规闪亮的应用程序中,当我使用tabsetPanel() 时,我做你想做的事情的方式是使用所选选项卡的值。 Whenever a tab is selected, there's an input value that gives you the value of what is selected.我没有广泛使用 flexdashboard,所以我不确定是否有类似的方法可以在 flexdashboard 中获取所选选项卡的值。

【讨论】:

  • 感谢@daattali 的输入。我已经四处搜索,目前我认为使用 flexdashboard 解决起来相对简单。
猜你喜欢
  • 2018-12-22
  • 1970-01-01
  • 2018-03-25
  • 2017-12-24
  • 1970-01-01
  • 2020-02-01
  • 2011-03-26
  • 1970-01-01
  • 2023-01-26
相关资源
最近更新 更多