Shinyjs: Zurücksetzen in den Zustand "selected = character(0)" für RadioButtons

Erstellt am 22. Sept. 2016  ·  3Kommentare  ·  Quelle: daattali/shinyjs

Hey Dean,

danke für dein tolles Paket. Ich denke, es wäre nützlich, wenn die Funktion reset() radioButtons in den Zustand zurücksetzen könnte, in dem keine Schaltfläche ausgewählt ist (was Sie mit selected = character(0) .

Hilfreichster Kommentar

Danke für die Information. Ich werde das Thema erneut öffnen, aber ich weiß nicht, wann/ob ich dazu komme, an dieser Funktion zu arbeiten. Ich würde mich über eine PR freuen

Alle 3 Kommentare

Es tut mir leid, aber Shinyjs wird diese Funktion nicht unterstützen, bis Shiny es tut. Damit meine ich, dass Sie mit Shiny den Wert eines Optionsfelds aktualisieren können (mit updateRadioButtons() ), aber Sie können nichts als Wert auswählen. Auch wenn Sie sich die Dokumentation für Optionsfelder ansehen, heißt es ausdrücklich, dass die Verwendung von character(0) möglich ist, aber davon abgeraten wird, da es unmöglich ist, in diesen Zustand zurückzukehren. Also ziehe ich es vor, innerhalb des gleichen Rahmens von glänzend zu bleiben und diese Funktionalität nicht bereitzustellen.

Wenn Sie dies wirklich tun müssen, können Sie ein renderUI(radioButtons(...)) wenn Sie möchten :)

@daattali Danke für dieses tolle Paket! Seit 21 Tagen wird dieses Verhalten in Shiny nun richtig unterstützt: https://github.com/rstudio/shiny/commit/770ebc394f1685c2d4a1eb7fd2d1610796281b84 https://github.com/rstudio/shiny/issues/2266
Der Eingabewert wird auf NULL .

Es wäre schön, wenn Shinyjs dies jetzt unterstützen könnte. Warum ist diese Funktion nützlich, auch wenn der Benutzer nicht in den nicht ausgewählten Zustand zurückkehren kann?
Ich erstelle eine Shiny-App für die (kategoriale) Dateneingabe, um versehentliche, verweilende Eingaben aus früheren Fällen/Beobachtungen zu vermeiden, lösche ich alle Optionskästchen, was auch disable s die Schaltfläche zum Senden ist (danke Shinyjs 😁 ).

EIN

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))

      })
    }
  )
}

Danke für die Information. Ich werde das Thema erneut öffnen, aber ich weiß nicht, wann/ob ich dazu komme, an dieser Funktion zu arbeiten. Ich würde mich über eine PR freuen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

shosaco picture shosaco  ·  4Kommentare

abhik1368 picture abhik1368  ·  3Kommentare

gadepallivs picture gadepallivs  ·  6Kommentare

Spatial-R picture Spatial-R  ·  3Kommentare

jalapic picture jalapic  ·  3Kommentare