Shinyjs: atualizar a página usando tabpanel

Criado em 31 mai. 2016  ·  3Comentários  ·  Fonte: daattali/shinyjs

Olá Dean,

É possível atualizar (recarregar o aplicativo) a página da Web com base no evento de clique no painel do conjunto de guias? Eu tenho uma guia inicial na minha página da barra de navegação, sempre que clico nessa guia, todo o sistema precisa ser atualizado. Atualmente estou usando um botão de ação para fazê-lo. eu tentei usar shinyjs no tabpanel mas não está funcionando. Não tenho certeza de como lidar com isso.

Comentários muito úteis

Você pode fazer algo assim

library(shiny)
library(shinyjs)

jscode <- "shinyjs.refresh = function() { location.reload(); }"

shinyApp(
  ui = tagList(
    useShinyjs(),
    extendShinyjs(text = jscode, functions = "refresh"),
    navbarPage(
      "test",
      id = "navbar",
      tabPanel(title = "tab1", "tab 1"),
      tabPanel(title = "tab2", "tab 2"),
      tabPanel(title = "Refresh", value = "refresh")
    )
  ),
  server = function(input, output, session) {
    observe({
      if (input$navbar == "refresh") {
        js$refresh();
      }
    })
  }
)

Todos 3 comentários

Você pode fazer algo assim

library(shiny)
library(shinyjs)

jscode <- "shinyjs.refresh = function() { location.reload(); }"

shinyApp(
  ui = tagList(
    useShinyjs(),
    extendShinyjs(text = jscode, functions = "refresh"),
    navbarPage(
      "test",
      id = "navbar",
      tabPanel(title = "tab1", "tab 1"),
      tabPanel(title = "tab2", "tab 2"),
      tabPanel(title = "Refresh", value = "refresh")
    )
  ),
  server = function(input, output, session) {
    observe({
      if (input$navbar == "refresh") {
        js$refresh();
      }
    })
  }
)

Obrigado, entendi, mas minha página é como uma página de pesquisa do Google com uma guia inicial sempre que abro, ela continua atualizando. A ideia foi boa obrigado.

Você pode fazer algo assim

library(shiny)
library(shinyjs)

jscode <- "shinyjs.refresh = function() { location.reload(); }"

shinyApp(
  ui = tagList(
    useShinyjs(),
    extendShinyjs(text = jscode, functions = "refresh"),
    navbarPage(
      "test",
      id = "navbar",
      tabPanel(title = "tab1", "tab 1"),
      tabPanel(title = "tab2", "tab 2"),
      tabPanel(title = "Refresh", value = "refresh")
    )
  ),
  server = function(input, output, session) {
    observe({
      if (input$navbar == "refresh") {
        js$refresh();
      }
    })
  }
)

Olá, Se eu quiser atualizar apenas uma determinada aba, não a "localização", como posso acessar o TabName, por favor?

Esta página foi útil?
0 / 5 - 0 avaliações