首页 > 解决方案 > 在 Shiny 输出中用 br() 替换换行符

问题描述

我正在编写一个闪亮的应用程序,其中显示从数据库加载的文本。在数据库中,可能有这样的文本:

This is the first line
and this is the second.

我从数据库中加载了这些文本的列表,我想将它们全部显示在自己的框中。我对这些字符串的后端处理或多或少是这样的:

format_text <- function(text) {
    shinydashboard::box(text)
}

output$text_ui <- renderUI({
    map(text_list, format_text) %>%
      tagList()
})

显示时,这不尊重原始字符串中的换行符。整个文本显示在一行上:

This is the first lineand this is the second.

我尝试通过在自定义函数中添加以下步骤来解决此问题:

text <- str_replace_all(text, "(\r|\n)", "<br/>")

这导致以下文本:

This is the first line<br/>and this is the second

这显然也不是我想要的。

现在,我知道我可以使用该shiny::br()函数创建新行。但是,我正在努力了解如何让它们在字符串中的正确位置工作。

可以在这里找到一个最小的 Shiny 应用程序。

标签: rshiny

解决方案


啊,解决方案看起来很简单:

format_text <- function(text) {
    shinydashboard::box(
       HTML(text)
    )
}

推荐阅读