【问题标题】:track previous tab in Shiny (r)在 Shiny (r) 中跟踪上一个标签
【发布时间】:2018-02-02 22:40:22
【问题描述】:

在 Shiny 的标签集中,是否有任何方法可以跟踪用户从 导航到哪个标签面板以到达当前面板?我几乎处于为每个面板使用计数器变量来跟踪它被访问的频率的阶段,但我想知道是否有更优雅的解决方案。

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    一种可能的方法是使用reactiveValues 存储当前和上一个标签input id。执行此操作的最小示例应用程序如下所示。该应用程序跟踪并打印出当前选择的和以前选择的选项卡。

    library(shiny)
    
    ui = shinyUI(
      fluidPage(
        tabsetPanel(id = 'selected_tab',
                    tabPanel('1','1'),
                    tabPanel('2','2'),
                    tabPanel('3','3')
        ),#tabsetPanel
        "current tab:",
        verbatimTextOutput('current_tab'),
        "previous tab:",
        verbatimTextOutput('last_tab')
      )#fPage
    )#shinyUi
    
    server = shinyServer(function(input, output, session) {
      #init reactive value storage
      rv = reactiveValues()
    
      #trigger event on tab selection change
      observeEvent(input$selected_tab, {
        #store old current tab as last tab reactive value
        rv$last_tab = rv$current_tab
        #store new current tab as cur tab reactive value
        rv$current_tab = input$selected_tab
      })
    
      output$current_tab = renderPrint(rv$current_tab)
      output$last_tab = renderPrint(rv$last_tab)
    
    })#shinyserver
    
    shinyApp(ui, server)
    

    【讨论】:

    • 谢谢,这真的很有帮助。
    • 我也可以说非常感谢您将我指向 reactiveValues()!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多