Wireframing
Volvamos al ejemplo anterior del panel para los resultados de análisis de un torneo de fútbol. En los ejercicios previos, ya configuraste el header y la barra lateral.
En concreto, un botón en la barra lateral se define con menuItem() y se incluye dentro de sidebarMenu(). Habrás notado que, por ahora, estos botones no hacen nada. Ahora vas a vincular esos botones de la barra lateral a una página distinta en el cuerpo de la interfaz. Esto sigue siendo parte del proceso de wireframing, en el que aún decides la posición de cada objeto. Cada página dentro del cuerpo se define con tabItem() y debe estar contenida dentro de tabItems.
Los paquetes shiny y shinydashboard ya se han cargado por ti. Además, el header del panel ya se ha guardado como header.
Este ejercicio forma parte del curso
Creación de paneles con shinydashboard
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
library(shiny)
library(shinydashboard)
header <- dashboardHeader(
title = "Analysis results for global soccer tournament",
titleWidth = 400,
dropdownMenu(type = "messages",
messageItem("Colleage", "Hello world!")),
dropdownMenu(type = "notifications",
notificationItem("Have you rested today?"),
taskItem("Dashboard completion", value = 20)))
sidebar <- dashboardSidebar(
sidebarMenu(
width = 400,
id = "pages",
menuItem("Match details", tabName = "matches", icon = icon("futbol"),
badgeLabel = "New content!", badgeColor = "green"),
menuItem("Overall results", tabName = "overall",
menuSubItem("Charts", tabName = "charts"),
menuSubItem("Data table", tabName = "datatable", icon=icon("file-excel"))),
menuItem("A slider", sliderInput("slider", "Number of goals", min=0, max=10, value = 2))
)
)
body <- dashboardBody(
# Link "matches" to an empty page in the body
___(
___(___, "Match information goes here")
)
)
ui <- dashboardPage(header, sidebar, body)
server <- function(input, output){}
shinyApp(ui, server)