【发布时间】:2018-11-08 23:34:48
【问题描述】:
我正在制作一个闪亮的应用程序,它会显示一个仪表板,但在此之前,它会要求用户登录。有两个用户界面,ui_login 和 ui_app,但是在 ui_app 中,如果我使用流体页面/固定页面或其他一些而不是仪表板页面,它工作正常。登录后有什么方法可以显示dashboardPage。
library(shiny)
library(shinydashboard)
my_username = "user"
my_password = "pass"
ui <- uiOutput("page")
ui_login <- fluidPage(
div(
textInput("username", "Username"),
passwordInput("passwd", "Password"),
br(),
actionButton("Login", "Log In"),
uiOutput("invalid")
)
)
ui_app <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody()
)
server <- function(input, output, session) {
#app server code-----
observe({
if(USER$Logged == FALSE) {
if(!is.null(input$Login)) {
if(input$Login > 0) {
Username <- isolate(input$username)
Password <- isolate(input$passwd)
if((Username == my_username) & (Password == my_password)){
USER$Logged = TRUE
}
else {
output$invalid <- renderUI(h4("Please enter valid login credentials!", style="color:red;"))
}
}
}
}
else {
output$invalid <- renderUI(h4("Please enter valid login credentials!", style="color:red;"))
}
})
observe({
if(USER$Logged == FALSE) {
output$page <- renderUI(ui_login)
}
else {
output$page <- renderUI(ui_app)
}
})
}
shinyApp(ui, server)
【问题讨论】:
-
我可以建议使用
shiny modal登录页面
标签: r shiny shinydashboard