2015-03-13 32 views
0

ui.r包括tabsetpanel两个标签打破闪亮

shinyUI(

    fluidPage(

    titlePanel("the title"), 
     mainPanel(
     tabsetPanel(tabPanel("Raw Data",verbatimTextOutput("theText")), 
        tabPanel("Raw Data2",verbatimTextOutput("theText")) 
     ) 
    ) 
) 
) 

server.r

library("shiny") 
library("dplyr") 
shinyServer(

function(input, output,session) { 

    print("do it") 
    output$theText <- renderText({ 
    return("please work")}) 
} 
) 

如果我删除一个的TabPanel它的工作原理,以及“做”在控制台和印刷标题和“请工作”打印在UI中。否则,在这两种情况下,带有两个选项卡的用户界面显示出来,并且在选项卡中没有任何内容被打印或显示,尽管空的灰色框显示出来。

使用RStudio 0.99.332,R 3.1.2,有光泽0.11.1

回答

2

在rshiny一个输出可以只去一个地方,这意味着你必须为其他的TabPanel创建新的输出。

library(shiny) 
server <- function(input, output, session) { 
    print("do it") 
    output$theText <- renderText({ 
    return("please work")}) 
    output$theText2 <- renderText({ 
    return("please work")}) 
} 

ui <- fluidPage(

    titlePanel("the title"), 
     mainPanel(
     tabsetPanel(tabPanel("Raw Data",verbatimTextOutput("theText")), 
        tabPanel("Raw Data2",verbatimTextOutput("theText2")) 
     ) 
    ) 
) 

shinyApp(ui = ui, server = server) 
+1

优秀。看起来很奇怪,输出不能像这样被访问两次,但是幕后可能有一个很好的理由。谢谢。 这是一个完美的答案,但是对于其他人来说, 'placeholderText < - reactive({x < - longCalculationFunction(); return(x)})'然后 'output $ theText1 < - renderText({你可以在任何地方使用更多的东西,比如返回一个简单的字符串 – hedgedandlevered 2015-03-13 15:17:24