我正在尝试利用valueBox
中的flexdashboard
来显示标题图形。但是,我也希望valueBox
像actionButton
那样工作,因为单击valueBox
应该会触发仪表板中其他位置的操作。
在查看flexdashboard
文档时,我看到了valueBox
的以下相关信息:
valueBox(42, icon = "fa-pencil", href="#details")
其中单击valueBox
会将用户导航到带有“ #details”锚点的其他页面。但是,没有任何迹象表明单击valueBox
可以用于其他操作。
下面是一个最小的相关flexdashboard代码
---
title: "valueBox Links"
output:
flexdashboard::flex_dashboard:
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
```
Tab 1 - Test
======================================================================
Column
-------------------------------------
#### Three valueBoxes
### valueBox 1
```{r}
valueBox(1)
```
### valueBox 2
```{r}
valueBox(2)
```
### valueBox 3
```{r}
valueBox(3)
```
Column
-------------------------------------
### Text output
This is where I want some text to show up dynamically, depending on if the user has clicked valueBox 1, 2, or 3.
任何帮助将不胜感激:)
答案 0 :(得分:2)
我为valueBox
尝试了不同的参数,没有任何运气。最后,我设法通过将actionButton
放在valueBox
的标题中,然后使用自定义样式使它们透明并扩展使其覆盖整个valueBox
来解决此问题。 。看起来像这样,单击每个valueBox
会在“文本输出”下呈现不同的文本:
我添加了颜色和图标以突出显示valueBox
可以正常设置样式。它仅使用flexdashboard库,并且完全响应。这是代码:
---
title: "valueBox Links"
output:
flexdashboard::flex_dashboard:
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
```
Tab 1 - Test
======================================================================
Column
-------------------------------------
#### Three valueBoxes
### valueBox 1
```{r}
valueBox(1, caption = paste("I'm clickable!", actionButton("button1", " ", style = "background-color:rgba(39, 128, 227, 0.0); border-color:rgba(39, 128, 227, 0.0); position: absolute; overflow: hidden; left: 0px; top: 0px; right: 0px; bottom: 0px; width:100%")), icon = "fa-thumbs-up", color = "success")
```
### valueBox 2
```{r}
valueBox(2, caption = paste("I'm clickable too!", actionButton("button2", " ", style = "background-color:rgba(39, 128, 227, 0.0); border-color:rgba(39, 128, 227, 0.0); position: absolute; overflow: hidden; left: 0px; top: 0px; right: 0px; bottom: 0px; width:100%")), icon = "fa-tag", color = "warning")
```
### valueBox 3
```{r}
valueBox(3, caption = paste("ME TOO!", actionButton("button3", " ", style = "background-color:rgba(0, 0, 0, 0.0); border-color:rgba(0, 0, 0, 0.0); position: absolute; overflow: hidden; left: 0px; top: 0px; right: 0px; bottom: 0px; width:100%")), icon = "fa-random", color = "danger")
```
Column
-------------------------------------
### Text output
```{r}
textOutput("textout")
rv <- reactiveValues(data = NULL)
observeEvent(input$button1, {
rv$data <- "There are two types of people in the world: 1) Those who can extrapolate from incomplete data."
})
observeEvent(input$button2, {
rv$data <- "If you live to be one hundred, you’ve got it made. Very few people die past that age."
})
observeEvent(input$button3, {
rv$data <- "A statistician’s wife had twins. He was delighted. He rang the minister who was also delighted. “Bring them to church on Sunday and we’ll baptize them,” said the minister. “No,” replied the statistician. “Baptize one. We’ll keep the other as a control."
})
output$textout <- renderText({
rv$data
})
```