Wireframing
Låt oss återvända till det tidigare exemplet med en dashboard för analysresultat från en fotbollsturnering. I de tidigare övningarna har du redan ställt in sidhuvudet och sidopanelen.
En knapp i sidopanelen definieras med menuItem() och placeras inuti sidebarMenu(). Du har kanske märkt att dessa knappar inte gör någonting ännu. Nu ska du länka sidopanelens knappar till olika sidor i UI:ets body. Det här är fortfarande en del av wireframing-processen, där du bestämmer var varje objekt ska placeras. Varje sida i body definieras med tabItem() och måste placeras inuti tabItems.
Paketen shiny och shinydashboard har redan laddats in. Dashboardens sidhuvud finns redan sparat som header.
Den här övningen är en del av kursen
Bygga dashboards med shinydashboard
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)