R中的页面刷新按钮闪亮

Posted

技术标签:

【中文标题】R中的页面刷新按钮闪亮【英文标题】:Page refresh Button in R shiny 【发布时间】:2016-03-12 14:28:17 【问题描述】:

我尝试在链接here 之后实现页面刷新按钮。但是,当我尝试部署到shinyapp.io 时,它失败并要求安装我已经完成的包V8。该应用程序在机器上运行良好。我使用的代码是:

jsResetCode <- "shinyjs.reset = function() history.go(0)",

useShinyjs(), # Include shinyjs in the UI

extendShinyjs(text = jsResetCode), # Add the js code to the page   

p(actionButton("reset_button", "Reset Tool"))

server.R:

observeEvent(input$reset_button, js$reset()) 

没有shinyjs,有什么办法可以做到这一点?

【问题讨论】:

阅读 shinyjs readme 中的“关于 V8 先决条件的说明”。 “如果您正在将使用extendShinyjs 的应用程序部署到shinyapps.io,那么您需要在代码中的某处添加对库(V8)的调用。这是必要的,因为shinyapps.io 服务器需要知道它应该安装V8 包. 如果你不这样做,那么你只会看到一个错误,说包丢失。” 我只在一开始就调用了 V8。即使在shinyapps.io中部署后它也无法正常工作 “我只在一开始就叫它”是什么意思?代码中是否有 library(V8) 调用?如果是这样,你应该没有任何问题 是的,它奏效了。不知何故,它最初不起作用。可能是刷新问题 也许您愿意接受 Dean Attali 的回答。当前版本包含非shinyjs 刷新页面的方式。 【参考方案1】:

为了完整起见,下面的代码是一个使用“刷新”按钮的 Shiny 应用的最小示例

library(shiny)
library(shinyjs)

jscode <- "shinyjs.refresh = function()  history.go(0); "

ui <- fluidPage(
  useShinyjs(),
  extendShinyjs(text = jscode),
  textInput("text", "Text"),
  actionButton("refresh", "Refresh app")
)

server <- function(input, output, session) 
  observeEvent(input$refresh, 
    js$refresh();
  )


shinyApp(ui = ui, server = server)

编辑:从闪亮版本0.13.0开始,可以使用闪亮的session$reload()函数刷新页面

【讨论】:

您好,感谢您的意见,我也有同样的问题,按照您的回答效果很好。我想知道如何实现您的代码以在多个选项卡上创建页面刷新按钮。我在这里发布了我的问题:***.com/questions/55262781/…。非常感谢您的帮助! 编辑很有帮助:只需使用 session$reload() 是的,喜欢编辑。我会把它放在顶部,这样人们就会看到它。我开始安装shinyjs 哈哈

以上是关于R中的页面刷新按钮闪亮的主要内容,如果未能解决你的问题,请参考以下文章

提交按钮后如何重新加载谷歌recaptcha而不刷新页面? [复制]

单击表单中的按钮会导致页面刷新

单击表单中的按钮会导致页面刷新

如何避免在asp.net中的按钮单击事件后页面刷新

更新面板中的链接按钮导致页面刷新

页面刷新后保留值