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中的页面刷新按钮闪亮的主要内容,如果未能解决你的问题,请参考以下文章