Shinyjs: сбросить в состояние "selected = character (0)" для RadioButtons

Созданный на 22 сент. 2016  ·  3Комментарии  ·  Источник: daattali/shinyjs

Привет, Дин,

спасибо за ваш потрясающий пакет. Я думаю, было бы полезно, если бы функция reset() могла сбрасывать radioButtons в состояние, в котором не выбрана кнопка (чего вы можете достичь с помощью selected = character(0) .

Самый полезный комментарий

Спасибо, что дал мне знать. Я снова открою проблему, но не знаю, когда / смогу ли я поработать над этой функцией. Я бы приветствовал пиар

Все 3 Комментарий

Извините, но shinyjs не будет поддерживать эту функцию до тех пор, пока shinyjs не будет. Я имею в виду, что с помощью shiny вы можете обновить значение переключателя (используя 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 рейтинги