Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

146
Views
¿Puedo forzar la carga de un shinyTree cuando se inicia la aplicación?

Resumen: cuando coloco un shinyTree (del paquete R del mismo nombre) en un botón dropdownButton (del paquete shinyWidgets ), parece que el árbol en cuestión no es accesible desde la variable de input hasta que el usuario haya interactuado con el árbol en de alguna manera ¿Hay alguna manera de forzar la carga del árbol cuando la aplicación se carga al principio?

Aquí hay un ejemplo mínimo (casi):

 library(shiny) library(shinyWidgets) library(shinyTree) library(magrittr) render.as.text <- function(t) { if (is.null(t)) { 'argument is NULL' } else { q <- get_selected(t) if (length(q) == 0) { 'none selected' } else { paste(q, sep=', ', collapse=', ') } } } ui <- fluidPage( dropdownButton(shinyTree('tree', checkbox=TRUE), circle=FALSE, inputId='dd') ) server <- function(input, output, session) { output$tree <- renderTree({ list(OptionA = structure(list(OptionAA='', OptionAB=''), stopened=TRUE), OptionB='') }) updateActionButton(session, 'dd', label='initial label') observe({ updateActionButton(session, 'dd', label=render.as.text(input$tree)) }) %>% bindEvent(input$dd_state) } shinyApp(ui = ui, server = server)

Cuando ejecuto esta aplicación, el botón comienza con el texto 'etiqueta inicial' (como se esperaba), luego, cuando hago clic en él la primera vez, el texto cambia a 'el argumento es NULL' (lo que muestra que la variable input$tree tiene un NULL valor), pero el árbol se muestra correctamente en el menú desplegable. Si luego vuelvo a hacer clic en el botón para cerrar el menú desplegable, el texto 'el argumento es NULL' permanece; permanece hasta que realmente seleccione una o más de las casillas de verificación del árbol, después de lo cual (y después de hacer clic en el botón nuevamente) mostrará una coma -lista separada de opciones seleccionadas o 'ninguna seleccionada' como se esperaba.

Me gustaría mucho poder referirme a input$tree comenzando con la primera vez que el usuario realiza alguna acción en la aplicación; idealmente, estoy buscando algún comando para insertar en el servidor o en el código ui (o ambos) que significa que la primera vez que el usuario hace clic en el botón, su texto cambiará directamente a 'ninguno seleccionado' porque input$tree ya no es NULL . es posible?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¿Simplemente cambiar el valor predeterminado de su función render.as.text funcionaría para su propósito?

 library(shiny) library(shinyWidgets) library(shinyTree) library(magrittr) render.as.text <- function(t) { if (is.null(t)) { 'none selected' } else { q <- get_selected(t) if (length(q) == 0) { 'none selected' } else { paste(q, sep=', ', collapse=', ') } } } ui <- fluidPage( dropdownButton(shinyTree('tree', checkbox=TRUE), circle=FALSE, inputId='dd') ) server <- function(input, output, session) { output$tree <- renderTree({ list(OptionA = structure(list(OptionAA='', OptionAB=''), stopened=TRUE), OptionB='') }) updateActionButton(session, 'dd', label='initial label') observe({ updateActionButton(session, 'dd', label=render.as.text(input$tree)) }) %>% bindEvent(input$dd_state) } shinyApp(ui = ui, server = server)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!