使用R Shiny添加页面刷新按钮

Mar*_*hou 9 r shiny

我正在制作一个应用程序,我需要添加一个按钮来刷新页面(同样的功能按F5).有没有人可以共享一段代码来实现它?

非常感谢!

Dea*_*ali 9

我确实有一个非常简单和好的解决方案,但它不适用于文件输入.

这是一个适用于除文件输入之外的所有输入的解决方案:

更新2017:此解决方案在前两年的文件输入上无效,但现在确实如此.

library(shiny)
library(shinyjs)
runApp(shinyApp(
  ui = fluidPage(
    shinyjs::useShinyjs(),
    div(
      id = "form",
      textInput("text", "Text", ""),
      selectInput("select", "Select", 1:5),
      actionButton("refresh", "Refresh")
    )
  ),
  server = function(input, output, session) {
    observeEvent(input$refresh, {
      shinyjs::reset("form")
    })
  }
))
Run Code Online (Sandbox Code Playgroud)

按"刷新"时,所有输入都将重置为初始值.

但文件输入非常奇怪,很难"重置"它们.看到这里.如果你愿意的话,你可以一起破解一些JavaScript来尝试重置输入字段.以下是执行实际页面刷新的方法:

library(shiny)
library(shinyjs)
runApp(shinyApp(
  ui = fluidPage(
    shinyjs::useShinyjs(),
    shinyjs::extendShinyjs(text = "shinyjs.refresh = function() { location.reload(); }"),
    textInput("text", "Text", ""),
    actionButton("refresh", "Refresh")
  ),
  server = function(input, output, session) {
    observeEvent(input$refresh, {
      shinyjs::js$refresh()
    })
  }
))
Run Code Online (Sandbox Code Playgroud)

免责声明:这两种解决方案都使用我写的包, shinyjs