闪亮的:点击操作按钮时显示主面板

4
有没有办法只在用户点击操作按钮时显示mainPanel中的所有内容?我已经在网上搜索了一段时间,但并没有找到答案。我知道可以使用hidden属性,它适用于mainPanel内较小的元素,例如单击时显示图片,但无法应用于整个mainPanel本身。你有什么建议吗?我认为将整个mainPanel包装在一个hidden属性中比将mainPanel中的每个元素都包装在hidden属性中更容易,但我似乎找不到使其正常工作的方法。
在dashboard body中:
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%">')})
1个回答

5

使用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")
  })

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接