Shinyjs: remise à l'état "selected = character(0)" pour les boutons radio

Créé le 22 sept. 2016  ·  3Commentaires  ·  Source: daattali/shinyjs

Salut Dean,

merci pour votre super paquet. Je pense que ce serait utile si la fonction reset() pouvait réinitialiser les radioButtons à l'état qui n'a pas de bouton sélectionné (ce que vous pouvez réaliser en utilisant selected = character(0) .

Commentaire le plus utile

Merci de me le faire savoir. Je vais rouvrir le problème, mais je ne sais pas quand/si je pourrai travailler sur cette fonctionnalité. je serais ravie d'avoir un RP

Tous les 3 commentaires

Je suis désolé mais shinyjs ne supportera pas cette fonctionnalité tant que shiny ne le fera pas. Ce que je veux dire par là, c'est qu'avec shiny, vous pouvez mettre à jour la valeur d'un bouton radio (en utilisant updateRadioButtons() ), mais cela ne vous permet pas de ne rien sélectionner comme valeur. De plus, si vous regardez la documentation des boutons radio, il est explicitement indiqué que l'utilisation de character(0) est possible mais déconseillée car il est impossible de revenir à cet état. Je préfère donc rester dans le même cadre de shiny, et ne pas proposer cette fonctionnalité.

Si vous devez vraiment le faire, vous pouvez utiliser un renderUI(radioButtons(...)) si vous le souhaitez :)

@daattali Merci pour ce super paquet ! Depuis 21 jours, ce comportement est désormais correctement pris en charge dans shiny : https://github.com/rstudio/shiny/commit/770ebc394f1685c2d4a1eb7fd2d1610796281b84 https://github.com/rstudio/shiny/issues/2266
La valeur d'entrée est réinitialisée à NULL .

Ce serait bien si shinyjs pouvait prendre en charge cela maintenant, pourquoi cette fonctionnalité est-elle utile même si l'utilisateur ne peut pas revenir à l'état non sélectionné ?
Je crée une application brillante pour la saisie de données (catégoriques), pour éviter les entrées accidentelles et persistantes des cas/observations précédents, je efface toutes les cases radio, qui disable s le bouton de soumission (merci shinyjs 😁 ).

UNE

library(shiny) # > 1.5.0
library(shinyjs)

  shinyApp(
    ui = fluidPage(
      useShinyjs(),
      div(
        id = "form",
        radioButtons("gender", "Gender", c("Male", "Female"), selected = character(0))
      ),
      actionButton("resetGender", "Reset Gender"),
    ),
    server = function(input, output, session) {

      observeEvent(input$resetGender, {
        updateRadioButtons(session, "gender", selected = character(0))
      })

      observe(print(input$gender))

      })
    }
  )
}

Merci de me le faire savoir. Je vais rouvrir le problème, mais je ne sais pas quand/si je pourrai travailler sur cette fonctionnalité. je serais ravie d'avoir un RP

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