Shinyjs: actualiser la page à l'aide de tabpanel

Créé le 31 mai 2016  ·  3Commentaires  ·  Source: daattali/shinyjs

Salut Dean,

Est-il possible d'actualiser (recharger l'application) la page Web en fonction d'un événement de clic sur le panneau de l'onglet ? J'ai un onglet d'accueil sur ma page de barre de navigation, chaque fois que je clique sur cet onglet, tout le système doit être actualisé. Actuellement, j'utilise un bouton d'action pour le faire. j'ai essayé d'utiliser shinyjs dans le tabpanel mais ça ne marche pas. Je ne sais pas comment le gérer.

Commentaire le plus utile

Vous pouvez faire quelque chose comme ça

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();
      }
    })
  }
)

Tous les 3 commentaires

Vous pouvez faire quelque chose comme ça

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();
      }
    })
  }
)

Merci, je l'ai compris, mais ma page est comme une page de recherche Google avec un onglet d'accueil chaque fois que je l'ouvre, il continue de se rafraîchir. L'idée était bonne merci.

Vous pouvez faire quelque chose comme ça

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();
      }
    })
  }
)

Bonjour, Si je souhaite uniquement actualiser un certain onglet, pas "l'emplacement", comment puis-je accéder au TabName, s'il vous plaît ?

Cette page vous a été utile?
0 / 5 - 0 notes