r - 如何在 R Shiny 中将反应值设置为默认值?
问题描述
我在更新闪亮的反应值时遇到问题。
所以我的应用程序基本上是从用户那里保存 textInputs。当用户决定上传所有文本输入时,我想重置 textInputs。
以下示例代码:
用户界面
ui <- fluidPage(
sidebarPanel(
textInput("words", "Please enter a word"),
actionButton("submit_new_word", "Save"), # this submits each single word
textOutput("submitted_new_words"), # this show all submitted words
actionButton("submit_upload", "Upload my Results") # this uploads all submitted words
)
)
服务器.R
server <- function(input, output, session) {
words_submitted <- paste("") # initial value
w_submitted <- eventReactive(input$submit_new_word, {
words_submitted <- paste(words_submitted, " ", input$words)
words_submitted <<- words_submitted
updateTextInput(session,
inputId = "words",
value = "")
return(words_submitted)
}, ignoreNULL=FALSE)
output$submitted_new_words <- renderText({
w_submitted()
})
observeEvent(input$submit_upload, {
# saveData(data_final) # upload, not needed for example here
words_submitted <<- paste("")
})
}
如果您尝试这个最小的示例,您将看到文本输入将被重置,但只有在再次单击“保存”按钮之后。
但是,我希望在单击“submit_upload”按钮时重置文本输入。
有人有想法吗?
解决方案
您可能最好使用某种reactive
. 闪亮的工作方式是,如果没有附加反应性,它不会使客户端上的任何东西失效(刷新),例如renderText
library(shiny)
ui <- fluidPage(
sidebarPanel(
textInput("words", "Please enter a word"),
actionButton("submit_new_word", "Save"), # this submits each single word
textOutput("submitted_new_words"), # this show all submitted words
actionButton("submit_upload", "Upload my Results") # this uploads all submitted words
)
)
v <- reactiveValues()
server <- function(input, output, session) {
v$words_submitted <- paste("") # initial value
observeEvent(input$submit_new_word, {
v$words_submitted <- paste(v$words_submitted, " ", input$words)
updateTextInput(session, inputId = "words",value = "")
}, ignoreNULL=FALSE)
output$submitted_new_words <- renderText({
v$words_submitted
})
observeEvent(input$submit_upload, {
# saveData(data_final) # upload, not needed for example here
v$words_submitted <- paste("")
})
}
# Run the application
shinyApp(ui = ui, server = server)
推荐阅读
- php - 如果数字已被猜到,如何将信息从两个会话变量发送到文本文件
- azure - Service Fabric 可靠的参与者和 I/O 操作
- list - 如何在 prolog 中打印出我的事实列表?
- design-patterns - 具有指定要运行的任务类型的字段的对象是否有设计模式?
- javascript - 使用角度 4 将一个数组列表中的项目组合插入另一个数组列表
- c# - ASP.NET Core 2.1 下拉列表为空
- python - 使用 ffmpeg 剪辑视频时丢失帧
- amazon-web-services - 如何在 AWS Lambda 中创建身份验证中间件
- c++ - c++,在子类中,没有对象如何访问父类的方法?
- php - 用同名初始化php类