R / R Shiny: невозможно вставить разрыв строки после writeLines в R

Я хочу распечатать содержимое writeLines новыми строками, но не могу этого сделать в своем приложении Shiny. Соответствующий код сервера прилагается. Текст в поле выходит так, как если бы он был объединен, а не в новых строках. Кто-нибудь может мне помочь?

Обновленный воспроизводимый пример

shinyUI(dashboardPage( skin = "black",
                       dashboardHeader(title = "Fruits",titleWidth = 450),
                       dashboardSidebar(width=250,tags$head(
                         tags$style(HTML("
                      .sidebar { height: 90vh; overflow-y: auto; font-size: 17px;}
                      " )
                         )
                       ),
                       
                       sidebarMenu(
                         
                         menuItem("Fruits", tabName = "Fruits"),
                         fileInput("file","Upload file (.xlsx)", multiple = TRUE,accept = c(".xlsx")),
                         
                         uiOutput("selectfile"),
                         
                       )),
                       dashboardBody(
                         tabItems(
                           
                           tabItem(tabName = "Fruits",
                                   fluidPage(
                                     
                                     uiOutput("tb")
                                     
                                     
                                   )
                                   
                           )))))


shinyServer(function(input, output, session)
{
  fruits <- reactive({
    req(input$file)
    inFile <- input$file
    if(is.null(inFile))
      return(NULL)
    
    fruits<-read_excel(paste(inFile$datapath, ".xlsx", sep=""), sheet = 1)
    
  })
  
  data <- reactive({
    data<-data.frame(fruits())
  })
  
  
  output$text1<- renderPrint({
    for(i in 1:length(data()$fruit_column)){
      writeLines(paste("Fruit", i ,"is", data()[i,fruit_column]))
    }
  })
  
  output$tb <- renderUI({
    if(is.null(input$file)) {return()}
    else
      tabsetPanel(
        
        tabPanel("Tab 1", 
                 box( title = "Fruit Log", status = "primary", solidHeader = TRUE,
                      collapsible = TRUE,
                      textOutput("text1")))
      )
  })
  })

shinyApp(ui, server)

Это должно дать приблизительное представление о приложении, которое я создал, хотя в этом воспроизводимом примере могут быть ошибки.


person Nil_07    schedule 21.06.2021    source источник
comment
Как вы определили output$text1 в пользовательском интерфейсе? Помните, что вы пишете HTML, а HTML не использует символ новой строки для новых строк. Он использует специальный элемент HTML, такой как ` `, для разрывов строк. Вам будет легче помочь, если вы включите простой воспроизводимый пример с образцом ввода, который можно использовать для тестирования и проверки возможных решений.   -  person MrFlick    schedule 21.06.2021
comment
Привет! Как вы можете видеть в примере, я определяю textOutput с идентификатором text1 в renderUI на сервере. Что касается воспроизводимого примера, часть пользовательского интерфейса не имеет к этому никакого отношения. Я чувствую, что это достаточно хороший воспроизводимый пример, чтобы понять проблему. Во всяком случае, я обновил воспроизводимый пример. В качестве входных данных для приложения можно создать простой файл .xlsx со столбцом, называемым столбцом фруктов, и заполнить его случайными именами фруктов. Воспроизводимый пример может иметь некоторые ошибки. Основная проблема состоит в том, чтобы каждый раз выводить названия фруктов с новой строки.   -  person Nil_07    schedule 22.06.2021
comment
verbatimTextOutput, кажется, решает проблему!   -  person Nil_07    schedule 22.06.2021