对于这个问题,我修改了代码(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)
答案 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)