我正试图将一个自定义的html小部件(ideogram(嵌入到一个闪亮的面板中的框中,该面板接收输入文件并绘制绘图。然而,当我上传一个文件时,小部件会从预期的框(title="Title1"(移动到仪表板应用程序的底部。请你帮忙把情节保留在方框里(标题1(。
library(shiny)
library(ideogram)
library(shinydashboard)
library(shinyFeedback)
sidebar <- dashboardSidebar(
menuItem("page1", tabName="page1")
)
body <- dashboardBody(
tabItem(
tabName="page1",
fluidRow(
box(
title = "Title1",
width = 8,
ideogramOutput("ideogram_plot")
),
box(
title="Files",
width=4,
fileInput("infile", "Upload",
accept=c(".seg"))
)
),
fluidRow(
box(
width=12,
height="50%"
)
)
)
)
ui <- dashboardPage(
dashboardHeader(title="Main Title"),
sidebar,
body
)
server <- function(input, output, session) {
data <- reactive({
req(input$infile)
ext=tools::file_ext(input$infile$name)
switch(ext,
seg=input$infile$datapath,
txt=input$infile$datapath,
validate("Error")
)
})
# render plot
output$ideogram_plot <- renderIdeogram({
ideogram({data()})
})
}
shinyApp(ui, server)
小部件容器的CSS选择器设置为body,而不是元素。