单击按钮时显示选项卡,然后显示数据框

问题描述 投票:0回答:1

当我单击按钮时,会出现一个选项卡并显示数据框的内容。我的问题是数据框没有显示

library(shiny); library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Basic dashboard"),
  dashboardSidebar(sidebarMenu(menuItem("Accueil", tabName = "dashboard", icon = icon("dashboard")),
                               menuItemOutput("mi_tab"))),
  dashboardBody(tabItems(
    tabItem(tabName = "dashboard", h2("title"), actionButton("button", "button")),
    tabItem(tabName = "tab", h2("title"), tableOutput("tbl_df"))))
)

server <- function(input, output, session) {
  df <- reactive(NULL)
  observeEvent(input$button, {
    data <- data.frame(Nom = c("Alice", "Bob", "Charlie"), Age = c(25, 30, 35))
    df <- reactive({data})
    output$mi_tab <- renderMenu({
      menuItem("tab", tabName = "tab", icon = icon("th"))
    })})
  output$tbl_df <- renderTable({
    if (is.data.frame(df())) {
      return(df())
    }})
}
shinyApp(ui = ui, server = server)
r shiny shinydashboard
1个回答
0
投票
library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Basic dashboard"),
  dashboardSidebar(sidebarMenu(
    menuItem("Accueil", tabName = "dashboard", icon = icon("dashboard")),
    menuItemOutput("mi_tab")
  )),
  dashboardBody(tabItems(
    tabItem(tabName = "dashboard", h2("title"), actionButton("button", "button")),
    tabItem(tabName = "tab", h2("title"), tableOutput("tbl_df"))
  ))
)

server <- function(input, output, session) {
  df <- reactiveVal(NULL)
  observeEvent(input$button, {
    data <- data.frame(Nom = c("Alice", "Bob", "Charlie"), Age = c(25, 30, 35))
    df(data)
    output$mi_tab <- renderMenu({
      menuItem("tab", tabName = "tab", icon = icon("th"))
    })
  })
  output$tbl_df <- renderTable({
    if (!is.null(df())) {
      return(df())
    }
  })
}

shinyApp(ui = ui, server = server)
© www.soinside.com 2019 - 2024. All rights reserved.