Я искал и пытался сделать панели в Shiny динамичными, но без радости. Под динамикой я подразумеваю, что они должны появляться только тогда, когда объекты, которые они будут содержать, созданы, а не раньше.
Ниже приведен воспроизводимый код для иллюстрации проблемы. Вы увидите, что еще до того, как будет показан какой-либо график, отображаются лунная панель и заголовок. Заголовок здесь - просто текст справки, и я могу сделать это реактивным, но не хорошей панелью. Если честно, это не влияет на функциональность приложения, но оно просто не красиво и сводит меня с ума.
library(shiny)
ui<- shinyUI(fluidPage(
titlePanel("My example shiny"),
fluidRow(
column(3, wellPanel(
numericInput("n", "N:", min = 0, max = 100, value = 50),
actionButton("goButton", "Go!")
)),
column(6,
wellPanel(
plotOutput("plot1", width = 400, height = 300),
helpText("Caption: This text should appear at the same time as the plot and well"),
#verbatimTextOutput("text")
)
)
)
)
)
server <- function(input, output) {
plot1 <- eventReactive(input$goButton, {
hist(rnorm(input$n))
})
output$plot1 <- renderPlot({
plot1()
})
}
shinyApp(ui = ui, server = server)
Приложение будет иметь несколько скважинных панелей, и было бы неплохо, чтобы на начальном экране не было пустых панелей, если бы это создавало впечатление, что что-то не так.
Любой указатель будетбыть высоко оценен. Приветствия