Допустим, у меня ниже Shiny
приложение -
library(shiny)
library(shinyjs)
shinyApp(
ui = fluidPage(
useShinyjs(),
checkboxInput("checkbox", label = "Choice a value", value = TRUE),
selectInput("variable", "Variable:",
c("Cylinders" = "cyl",
"Transmission" = "am",
"Gears" = "gear"))
),
server = function(input, output) {
observeEvent(input$checkbox, {
toggleState("variable")
})
}
)
Теперь я хочу, чтобы при нажатии checkbox
всегда выбиралось Cylinders
из variable
.
При вышеуказанном подходе этого не происходит. В настоящее время, когда пользователь выбирает другое значение ig Gears
после включения variable
, а затем снова пользователь переходит к checkbox
для отключения variable
, выбор Gears
остается в пользовательском интерфейсе, который я не хочу и хочу go обратно на Cylinders
мгновенно каждый раз, когда variable
отключен.
Любой указатель, как выполнить sh, это будет высоко оценено.
Обновлено после bretauv's
ответ -
Его ответ прекрасно работает с shiny's
native selectInput()
, однако, кажется, не работает, если я использую shinyWidgets
пакета pickerInput()
, как показано ниже -
library(shiny)
library(shinyjs)
library(shinyWidgets)
shinyApp(
ui = fluidPage(
useShinyjs(),
checkboxInput("checkbox", label = "Choice a value", value = FALSE),
pickerInput("variable", "Variable:",
c("Cylinders" = "cyl",
"Transmission" = "am",
"Gears" = "gear"),
width = "50%",
selected = "gear")
),
server = function(input, output, session) {
observe({
if (input$checkbox) {
toggleState(id = "variable")
} else {
toggleState(id = "variable")
updatePickerInput(session = session,
inputId = "variable", label = NULL,
choices = c("Cylinders" = "cyl",
"Transmission" = "am",
"Gears" = "gear"),
selected = "Cylinders")
}
})
}
)
Любой указатель для решения этой проблемы будет высоко оценен.