闪亮的,我有以下几点:
output$sequenceText <- renderText({
showSequence()
})
showSequence <- reactive({
selectedSeqs <- as.numeric(input$sequenceSelect)
resultString <- ""
currentString <-""
for(i in selectedSeqs){
currentString <- paste(i, toString(myProts[i]), sep = ":")
resultString <- paste(resultString, currentString, sep = "\n")
}
return(resultString)
})
但是,新行字符似乎不受尊重。我该如何解决这个问题?
谢谢!
答案 0 :(得分:37)
据我所知,只有两个选项可以在闪亮中显示多条线。使用verbatimTextOutput
的一种方法是在文本周围提供灰色框(个人偏好)。另一种方法是使用renderUI
和htmlOutput
来使用原始html。以下是演示结果的基本工作示例。
require(shiny)
runApp(
list(
ui = pageWithSidebar(
headerPanel("multi-line test"),
sidebarPanel(
p("Demo Page.")
),
mainPanel(
verbatimTextOutput("text"),
htmlOutput("text2")
)
),
server = function(input, output){
output$text <- renderText({
paste("hello", "world", sep="\n")
})
output$text2 <- renderUI({
HTML(paste("hello", "world", sep="<br/>"))
})
}
)
)
这产生了下图:
答案 1 :(得分:1)
怎么样
output$text2 <- renderUI({
HTML('hello <br> world')
})
答案 2 :(得分:1)
还有一个write(x, file = "")
技巧:
renderPrint({
write(showSequence(), file = "")
})
如果输出为verbatimTextOutput
,则此方法有效。
答案 3 :(得分:0)
这是另一种方法,可能会更简单。
ui <- fluidPage(
htmlOutput("text")
)
server <- function(input, output) {
output$text <- renderText({
paste0("<p>", letters[1:10], "</p>")
})
}
# Run the application
shinyApp(ui = ui, server = server)
答案 4 :(得分:0)
对于阅读本文的任何人,您可能还希望使用tags $ br(),只需将其作为参数插入一段文本后即可。例如,
tags$div(
"a piece of text", tags$br(),
"this will start from the new line now", tags$br(),
"and this as well",
"but not this" )