我正在尝试在运行应用程序时在shinyjs::hidden
节中包含的闪亮应用程序中渲染一些输出,而不是在该节可见之后。
编辑:我在原始示例中设置的应用程序不正确,因此已将其更改。
我希望能够在运行最终观察以将UI从Alpha文本更改为Beta文本并绘图之前运行反应性语句。理想情况下,这意味着控制台中的"Done plotting"
之前会看到"Observe run"
。
library(shiny)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
div(id = "before-content", h3("Aux Text Alpha")),
shinyjs::hidden(
div(
id = "after-content",
h1("Aux Text Beta"),
plotOutput("text")
)
)
)
server <- function( session,input, output) {
in_plot <- reactive({
Sys.sleep(3)
print("Done plotting")
plot(iris)
})
output$text <- renderPlot({
in_plot()
})
observe({
print("Observe run")
hide("before-content")
show("after-content")
})
}
shinyApp(ui, server)
一种替代方法是在被分类为隐藏部分的内容上放一层,但是对于如何完成此操作不太确定。
答案 0 :(得分:0)
您可以hide
在反应式中,如下所示:
library(shiny)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
actionButton("button", "Click me"),
plotOutput("text")
)
server <- function( session,input, output) {
in_plot <- reactive({
hide("text")
Sys.sleep(3)
print("Done plotting")
plot(iris)
})
output$text <- renderPlot({
in_plot()
})
observeEvent(input$button, {
show("text")
})
}
shinyApp(ui, server)