【发布时间】:2019-01-20 16:57:57
【问题描述】:
我正在尝试使用导航面板创建这个闪亮的应用程序。 navBar 上的第一个选项卡将是一个汇总表,我希望在其中使第一列内容可单击并导航到其详细选项卡内容。我已经将文本设置为超链接,但我想知道如何让 onClick 导航正常工作。
_______________________更新问题_____________
所以我根据我得到的建议做了一些更新。我只是使用函数 actionLink(),结合 ObserveEvent({updateNavPanel})
似乎主要问题是 DT 表内的 actionLink 不起作用,但在外部它工作正常。也许我只是缺少一些回调函数来让它识别 DT 中的按钮?
以下是代码:Summary1 显示了有效的操作链接,Summary2 显示了 DT 中无效的操作链接。
---
title: "Fruit Dashboard"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
runtime: shiny
---
```{r global, include=FALSE, echo=FALSE}
# import libraries
library(DT)
library(shiny)
library(tidyverse)
library(shinythemes)
library(shinydashboard)
```
```{r, echo = FALSE}
shinyApp(
ui <- fluidPage(
titlePanel("Fruit Dashboard"),
theme = shinytheme("united"),
navlistPanel(id='nav', widths = c(2, 10),
tabPanel('Summary1', actionLink('apple', 'go to apple')),
tabPanel('Summary2', dataTableOutput('summary')),
tabPanel("apple", dataTableOutput('apple')),
tabPanel("orange", dataTableOutput('orange')),
tabPanel("watermelon", dataTableOutput('watermelon'))
)
),
server <- function(input, output, session) {
observeEvent(input$apple, {
updateNavlistPanel(session, "nav", 'apple')
})
output$summary <- renderDataTable({
data <- data.frame('Fruit' = c('apple', 'orange', 'watermelon'),
'Count' = c(3,4,5)) %>%
mutate(Fruit = paste0("<a id='", Fruit, "' hrep='#' class='action-button'>", Fruit, "</a>" ))
table <- datatable(data, escape = FALSE , selection = 'none')
table
})
output$apple <- renderDataTable({
data <- data.frame('Total#' = 3, 'Organic#'= 2, 'Conventional#'=1)
table <- datatable(data, escape = FALSE)
table
})
output$orange <- renderDataTable({
data <- data.frame('Total#' = 4, 'Organic#'= 3, 'Conventional#'=1)
table <- datatable(data, escape = FALSE)
table
})
output$watermelon <- renderDataTable({
data <- data.frame('Total#' = 5, 'Organic#'= 2, 'Conventional#'= 3)
table <- datatable(data, escape = FALSE)
table
})
}
)
```
【问题讨论】:
-
你看过这里了吗?stackoverflow.com/questions/34315485/...
-
我尝试了 actionLink + updateNavBar 选项,但它在 DT 中不起作用。也许我只是错过了 DT 中的一些回调函数?请参阅上面的更新问题。
标签: javascript r shiny dt shinyjs