首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R身份验证后的shinymanager removeTab

R身份验证后的shinymanager removeTab
EN

Stack Overflow用户
提问于 2021-08-25 08:21:09
回答 1查看 34关注 0票数 0

我想隐藏“登录”tabPanel,并呈现“内容”tabPanel的内容后,用户能够认证到应用程序。

" content“tabPanel的内容确实会被呈现,但"Login”tabPanel不会被删除。我不明白为什么会发生这种事。

下面是重现问题的代码:

代码语言:javascript
运行
复制
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)

提前感谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-25 09:20:11

不是单独使用reactive,而是放到observer中,因为反应式表达式需要由某个东西调用或由另一个表达式调用,否则它将不会执行:

代码语言:javascript
运行
复制
  observe({
    req(auth$result)
    removeTab(
      inputId = "main",
      target = "Login"
    )
  })
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68919298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档