Ich benutze glänzend mit Shinydashboard. Ich habe eine Tabbox mit zwei TabPanels. Dann gibt es eine weitere Box, die entweder textOutput ("a") anzeigen soll, wenn Tab1 in der Tabbox ausgewählt ist oder textOutput ("b"), wenn Tab2 ausgewählt ist.Bedingte Anzeige in Box basierend auf der in shinydashboard ausgewählten Registerkarte
Ich biete ganzen Code für die Reproduzierbarkeit, aber achten Sie auf Kommentare, die zeigen, wo der wichtige Teil ist.
library(shiny)
library(shinydashboard)
ui<-dashboardPage(skin = "red",
dashboardHeader(title="lalala",titleWidth = 450),
sidebar <-dashboardSidebar(width=400,
sidebarMenu(
menuItem(text = strong("First tab"),tabName="first",icon = icon("dashboard"))
)),
body <- dashboardBody(
fluidRow(
tabBox(
title = "First tabBox",
id = "tabset1", height = "250px",
############## based on which of this tab is selected
tabPanel("Tab1", "First tab content"),
tabPanel("Tab2", "Tab content 2")
),
box(
title = "Selection criteria for chart", height = "700px",width = 4, solidHeader = TRUE,status="danger",
############## I want in this box to display either textouput "a" or "b"
textOutput("a")
)
)))
server<-function(input,output){
output$a<-renderText(
a<-"ahoj"
)
output$b<-renderText(
b<-"cau"
)
}
Nun habe ich versucht, etwas wie in server.R Ausgabe $ x <-RenderText ({input $ tabset1}) und dann testen in ui.R if (textOutput ("x") == "Tab1") {"a " } else { " b " } Es funktioniert nicht oder Sie wollen es in Server.R testen? –
'if' Logik funktioniert nur auf der Serverseite. –
Ich habe so etwas auf der serverseitigen Ausgabe versucht $ x <-RenderText ({input $ tabset1}) if (Ausgabe $ x == "Tab1") { Ausgabe $ y = renderText (y <- "hahah") } else { Ausgabe $ y = renderText (y <- "bebebe") } aber immer noch nicht funktionieren –