我想隐藏“登录”tabPanel,并呈现“内容”tabPanel的内容后,用户能够认证到应用程序。
" content“tabPanel的内容确实会被呈现,但"Login”tabPanel不会被删除。我不明白为什么会发生这种事。
下面是重现问题的代码:
library(shiny)
library(shinymanager)
# Credentials
credentials <- data.frame(
user = c("test"),
password = c(scrypt::hashPassword("test")),
is_hashed_password = TRUE
)
ui <- navbarPage(
"Test project",
id="main",
tabPanel(
"Login",
auth_ui(
id="auth",
lan=use_language("fr")
)
),
tabPanel(
"Content",
uiOutput("test")
)
)
server <- function(input, output){
auth <- callModule(
module = auth_server,
id = "auth",
check_credentials = check_credentials(credentials)
)
reactive({
req(auth$result)
removeTab(
inputId = "main",
target = "Login"
)
})
output$test <- renderUI({
req(auth$result)
tags$h1("Test")
})
}
shinyApp(ui=ui, server=server)提前感谢:)
发布于 2021-08-25 09:20:11
不是单独使用reactive,而是放到observer中,因为反应式表达式需要由某个东西调用或由另一个表达式调用,否则它将不会执行:
observe({
req(auth$result)
removeTab(
inputId = "main",
target = "Login"
)
})https://stackoverflow.com/questions/68919298
复制相似问题