重置Shinyjqui拖放顺序输入

时间:2020-02-13 13:41:06

标签: r shiny drag-and-drop shinyjs

对于这个问题,我修改了代码(https://cran.r-project.org/web/packages/shinyjqui/readme/README.html

我需要基于“重置”按钮来重置订单输入。

示例:如果我将 Nov Dec 放入 Dest ,然后单击按钮,我希望元素位于来源。我可以通过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 :(得分:0)

orderInput小部件对reset()或updateSelectInput()没有反应,我也遇到类似的问题。

我最终使用了一种变通方法,即在按下重置按钮后重新渲染orderInput小部件的ui。这是基于另一个stackoverflow问题(Maximum item in shinyjqui::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)
相关问题