2

我想知道是否有人知道如何使我的注销按钮起作用。

我的程序是这样的:

用户界面

 ui2 <- function(){
        tagList(tabPanel(""),
        pageWithSidebar(
        headerPanel(
            ""
        ),
        sidebarPanel
        (
            actionButton("logout", "Logout")        
        ),
            mainPanel(tableOutput('aaa'))
        )
    )   
}


ui1 <- function(){
    tagList(h2("Hello", align = "center"),
    div(id = "login",
        wellPanel(textInput("userName", "Username"),
                  passwordInput("passwd", "Password"),
                  br(),actionButton("Login", "Log in"),
  )}
}

服务器

server = (function(input, output,session) {

USER <- reactiveValues(Logged=FALSE)
observe({ 
    if (USER$Logged == FALSE) {
      if (!is.null(input$Login)) {
        if (input$Login > 0) {
            Username <- isolate(input$userName)
            Password <- isolate(input$passwd)
            query <- sprintf({"
              SELECT rowid 
              FROM users 
              WHERE username='%s' and password ='%s'"}, 
                           Username, Password, serialize=F) 
            db   <- RSQLite::dbConnect(RSQLite::SQLite(), dbname="db.sqlite")
            user <- RSQLite::dbGetQuery(db, query) 
            RSQLite::dbDisconnect(db)
            if ( length(user$rowid)==1 ) {
              USER$Logged <- TRUE
          }
        } 
      }
    }    
})
observe({
    if (USER$Logged == FALSE)
    {
      output$page <- renderUI({div(class="outer",do.call(bootstrapPage,c("",ui1())))})
    }
    if (USER$Logged == TRUE) 
    {
      output$page <- renderUI({div(class="outer",do.call(navbarPage,c(inverse=TRUE,title = paste("Welcome", isolate(input$userName)," !"),ui2())))})
      print(ui)
    }
})
observeEvent(input$logout, {
    output$page <- renderUI({div(class="outer",do.call(bootstrapPage,c("",ui1())))})
    USER$Logged <- FALSE   
})

})

我需要拥有所有这些用户界面,我很难加入它们,因为我不知道如何去做。

我尝试使用以下代码使其返回主页:

在服务器.R

observeEvent(input$reset_button, {

    shinyjs::runjs("window.location.href = 'https://yoursubdomain.shinyapps.io/yourapp';")

})

在ui.R中

actionButton("reset_button", "Restart", icon = icon("undo"), class = "btn-info"))

但它也不起作用。而且我想在这种多界面的情况下,重定向到主页的按钮比退出按钮更容易。

你能帮助我吗?有谁知道怎么做?

4

0 回答 0