';在闪亮的应用程序中重置输入';按钮 [英] 'Reset inputs' button in shiny app
本文介绍了';在闪亮的应用程序中重置输入';按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在我闪亮的应用程序中实现"重置输入"按钮。
下面是一个仅有两个输入的示例,其中我使用更新函数将值设置回默认值:
library(shiny)
runApp(list(
ui = pageWithSidebar(
headerPanel("'Reset inputs' button example"),
sidebarPanel(
numericInput("mynumber", "Enter a number", 20),
textInput("mytext", "Enter a text", "test"),
tags$hr(),
actionButton("reset_input", "Reset inputs")
),
mainPanel(
h4("Summary"),
verbatimTextOutput("summary")
)
),
server = function(input, output, session) {
output$summary <- renderText({
return(paste(input$mytext, input$mynumber))
})
observe({
input$reset_input
updateNumericInput(session, "mynumber", value = 20)
updateTextInput(session, "mytext", value = "test")
})
}
))
我想知道的是,是否还有一个函数可以将所有内容设置为默认值?这在有多个输入的情况下很有用。
此外,我不确定使用观察功能来检测操作按钮何时被点击是否是处理操作按钮的"正确方式"?
推荐答案
shiny
中没有这样的函数,但是,这里有一种无需定义两次输入即可实现此目的的方法。诀窍是使用uiOutput
并将要重置的输入包装在一个div
中,该div
的ID在每次按下重置按钮时都会更改为新的内容。
library(shiny)
runApp(list(
ui = pageWithSidebar(
headerPanel("'Reset inputs' button example"),
sidebarPanel(
uiOutput('resetable_input'),
tags$hr(),
actionButton("reset_input", "Reset inputs")
),
mainPanel(
h4("Summary"),
verbatimTextOutput("summary")
)
),
server = function(input, output, session) {
output$summary <- renderText({
return(paste(input$mytext, input$mynumber))
})
output$resetable_input <- renderUI({
times <- input$reset_input
div(id=letters[(times %% length(letters)) + 1],
numericInput("mynumber", "Enter a number", 20),
textInput("mytext", "Enter a text", "test"))
})
}
))
这篇关于';在闪亮的应用程序中重置输入';按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文