Сбросить порядок ввода - PullRequest
       20

Сбросить порядок ввода

0 голосов
/ 13 февраля 2020

Для этого вопроса я изменил код (https://cran.r-project.org/web/packages/shinyjqui/readme/README.html)

Мне нужно сбросить ввод заказа на основе нажатия кнопки «Сброс».

Пример: если я перетащу Nov и De c в Dest , а затем нажму на кнопку, я хочу, чтобы элементы были в Источник снова. Могу ли я вызвать orderinputs по ID, чтобы сбросить их?

  server <- function(input, output) {
  output$order <- renderPrint({ print(input$dest_order) })

  observeEvent(input$btn,{
    reset("dest")        # these did not work
    reset("input$dest")
    reset(input$dest)
  })
}

ui <- fluidPage(
  orderInput('source', 'Source', items = month.abb,
             connect = 'dest'),
  orderInput('dest', 'Dest', items = NULL, placeholder = 'Drag items here...', connect = 'source'),
  verbatimTextOutput('order'),

  actionButton("btn","reset")
)

shinyApp(ui, server)

1 Ответ

0 голосов
/ 28 февраля 2020

У меня была похожая проблема с виджетом orderInput, не реагирующим на reset () или updateSelectInput ().

В итоге я использовал обходной путь, при котором пользовательский интерфейс виджета orderInput перерисовывается после нажав кнопку сброса. Это было основано на ответе на другой вопрос StackOverflow ( Максимальное количество элементов в sparkljqui :: orderInput ).

Если я правильно понимаю ваш случай, вы хотели бы, чтобы виджеты source и dest orderInput виджеты быть сброшены до их начальных значений при нажатии кнопки сброса:

library(shiny)
library(shinyjqui)

server <- function(input, output) {
      output$order <- renderPrint({ print(input$dest_order) })


      output$ui_source <- renderUI({
                orderInput('source', 'Source', items = month.abb,
                           connect = 'dest')
      })

      output$ui_dest <- renderUI({
                orderInput('dest', 'Dest', items = NULL, placeholder = 'Drag items here...', connect = 'source')
      })


      observeEvent(input$btn,{
                # Render the UI for the orderInput widgets again
                output$ui_source <- renderUI({
                          orderInput('source', 'Source', items = month.abb,
                                     connect = 'dest')
                })

                output$ui_dest <- renderUI({
                          orderInput('dest', 'Dest', items = NULL, placeholder = 'Drag items here...', connect = 'source')
                })

      })
}

ui <- fluidPage(

      uiOutput("ui_source"),

      uiOutput("ui_dest"),

      verbatimTextOutput('order'),

      actionButton("btn","reset")
)

shinyApp(ui, server)
...