只有当用户单击操作按钮时,有没有办法显示 mainPanel 中的所有内容?我已经在互联网上搜索了一段时间的答案,但无法真正找到答案。我知道我可以使用 hidden - 它适用于 mainPanel 内的较小元素,例如单击时显示图片,但不适用于整个 mainPanel 本身。有什么建议?找到一种方法将整个主面板包裹在一个隐藏中而不是将 mainPanel 中的每个元素包裹在一个隐藏中会更容易我认为,但我似乎无法找到使其工作的方法。
在仪表板主体中:
fluidRow(
column(12, actionButton("analyze", "Fetch Data!", width = "100px"))),
hidden(
mainPanel(
hidden( (htmlOutput("artistpic")), // this works fine & shows on button click
infoBoxOutput("approvalBox"))
)),
服务器:
pic <- eventReactive(input$analyze2, {
print(get_id_picture()[3])
url = toString(get_id_picture()[3])
print(url)
url
})
output$artistpic <- renderText({c('<img src="',pic(),'"width="17%" height="17%">')})
最佳答案
这很容易使用 shinyjs .
就围mainPanel()
与 div()
标签,以便您可以使用它的 id 来切换它的可见性,并使用 hidden()
隐藏 div 标签启动应用程序如下例所示:
# ui.R
fluidPage(
useShinyjs(),
actionButton("toggle.main.button", "Toggle Main"),
div(id = "main",
mainPanel(
p("This paragraph is in main."),
p("This one too!")
)
) %>% shinyjs::hidden()
)
# server.R
library(shinyjs)
function(input, output, session) {
# Toggling visability of main on button click.
observeEvent(input$toggle.main.button, {
shinyjs::toggle("main")
})
}
关于r - Shiny :在操作按钮单击时显示 mainPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50079049/