Shinyjs: إعادة التعيين إلى حالة "المحدد = حرف (0)" لأزرار الراديو

تم إنشاؤها على ٢٢ سبتمبر ٢٠١٦  ·  3تعليقات  ·  مصدر: daattali/shinyjs

يا عميد ،

شكرا لحزمتك الرائعة. أعتقد أنه سيكون من المفيد أن تقوم الوظيفة reset() بإعادة تعيين الأزرار اللاسلكية إلى الحالة التي لا يوجد بها زر محدد (ما يمكنك تحقيقه باستخدام selected = character(0) .

التعليق الأكثر فائدة

شكرا على إعلامي. سأعيد فتح المشكلة ، لكنني لا أعرف متى / إذا كنت سألتف للعمل على هذه الميزة. أود أن أرحب العلاقات العامة

ال 3 كومينتر

أنا آسف ولكن shinyjs لن تدعم هذه الميزة حتى الإرادة اللامعة. ما أعنيه بذلك هو أنه يمكنك تحديث قيمة زر الاختيار باستخدام اللمعان (باستخدام updateRadioButtons() ) ، لكنه لا يسمح لك بتحديد أي شيء كقيمة. أيضًا إذا نظرت إلى الوثائق الخاصة بأزرار الاختيار ، فستجد صراحةً أن استخدام character(0) ممكن ولكن لا يُنصح به بسبب استحالة العودة إلى تلك الحالة. لذلك أفضل أن أبقي في نفس الإطار اللامع ، ولا أقدم تلك الوظيفة.

إذا كان يجب عليك فعل ذلك ، فيمكنك استخدام renderUI(radioButtons(...)) إذا كنت تريد :)

daattali شكرا لهذه الحزمة الرائعة! اعتبارًا من 21 يومًا ، أصبح هذا السلوك مدعومًا بشكل صحيح الآن بشكل لامع: https://github.com/rstudio/shiny/commit/770ebc394f1685c2d4a1eb7fd2d1610796281b84 https://github.com/rstudio/shiny/issues/2266
تتم إعادة تعيين قيمة الإدخال إلى NULL .

سيكون من الرائع لو استطاعت shinyjs دعم هذا الآن ، لماذا هذه الميزة مفيدة حتى لو لم يتمكن المستخدم من العودة إلى الحالة غير المحددة؟
أقوم بإنشاء تطبيق لامع لإدخال البيانات (القاطع) ، لتجنب المدخلات العرضية والمتأخرة من الحالات / الملاحظات السابقة ، قمت بمسح جميع مربعات الراديو ، والتي أيضًا زر الإرسال disable s (شكرًا shinyjs 😁).

أ

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

      })
    }
  )
}

شكرا على إعلامي. سأعيد فتح المشكلة ، لكنني لا أعرف متى / إذا كنت سألتف للعمل على هذه الميزة. أود أن أرحب العلاقات العامة

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات