我们可以在不重新加载页面的情况下重置页面或对象在R Shiny

时间:2019-12-13 06:32:00

标签: r shiny shinydashboard shinyjs shinyapps

问题1 :我创建了一个闪亮的应用程序,其中,当用户将任何记录提交到数据库时,整个页面都将重新加载,我不希望我只想重置/刷新我的对象,而无需整个页面重新加载。是否有其他方法可以实现相同的目的?

问题2 :在我的应用程序中,我也有一个登录页面,因此我希望在用户输入其凭据时将凭据存储在该字段中,以便当用户再次登录同一页面时,不应要求不要通过使用浏览器功能记住密码来输入凭据以及密码。此外,当他们关闭浏览器并再次打开浏览器的新实例时,还应该要求提供凭据。

任何帮助将不胜感激。 :)

1 个答案:

答案 0 :(得分:1)

如果您的问题陈述有任何可复制的示例,那总是很好。 对于您的问题1,有一个包Shinyjs。您可以使用它来重置对象。问题1的示例代码:

library(shiny)
library(shinyjs)
shinyApp(
  ui = fluidPage(
    shinyjs::useShinyjs(),
        h2("shinyjs demo"),
        textInput("name", "Name", ""),
        actionButton("submit", "Submit"),
        actionButton("reset", "Reset form")

  ),

  server = function(input, output) {

    observeEvent(input$submit, {
      shinyjs::alert( paste("Thank you!",input$name) )
    })

    observeEvent(input$reset, {
      shinyjs::reset("name")
    })    
  }
)

您可以在此处获得文档。 https://github.com/daattali/shinyjs

对于您的问题2,相关的内容很少。它也可以由浏览器处理。 您可以使用此文档链接https://gist.github.com/calligross/e779281b500eb93ee9e42e4d72448189