如何解决条件`menuitem`的`tabitem`内容仅在闪亮中显示一次
我希望 menuItem
中的导航 shinydashboard
有条件并根据 server.R
中评估的条件显示。
为此,我有一个包含 conditionalPanel
的 menuItem
,在 sidebarMenu
中的常规 ui.R
旁边定义(我使用 shinymanager
对用户进行身份验证):
sidebar <- dashboardSidebar(
width=280,sidebarMenu(id = "sidebarmenu",menuItem(...),menuItem(...,menuSubItem(...),menuSubItem(...)
)
),conditionalPanel(condition = "output.x === 1",menuItem("title",tabName="tabname")
)
)
body <- dashboardBody(
tabItems(
tabItem(tabName = "id",fluidPage(
titlePanel("Hello World")
)),tabItem(tabName="tabname",titlePanel("mytitle"),fluidPage(
dataTableOutput(outputId = "table")
)
)
)
ui <- dashboardPage(
dashboardHeader(title = "Hello App",titleWidth=280),sidebar,body
)
ui <- secure_app(ui)
在 server.R
中,我根据登录用户的登录详细信息切换 output.x
:
server <- function(input,output,session) {
# login logic: call the server part,check_credentials returns a function to
# authenticate users
res_auth = secure_server(
check_credentials = check_credentials
)
# Define the logon details with a reactive variable
auth_output <- reactive({
reactiveValuesToList(res_auth)
})
output$x = reactive({
auth_output()$role
})
# Generate a data table from the DB to show conditionally
conn = ...
data = load_data(conn,...)
disconnect(conn)
output$table = dt_render({data})
# All output variables that need to be transferred to the UI should have
# suspendWhenHidden = FALSE:
outputoptions(output,"x",suspendWhenHidden = FALSE)
问题:条件表只显示一次,只要我想。在这一次之后,一旦我离开它,点击条件 menuItem
就不会显示任何内容。 menuItem
仍然出现,这意味着 output.x === 1
被正确评估,但其内容,即后续的 tabItem
,仍然隐藏。
我曾尝试将 isolate
分配给 output.x
,甚至将其固定为 1 也无济于事。有线索吗?
解决方法
由于conditionalPanel
不能放在默认的sidebarMenu
中,所以它必须在它的独立条件sidebarMenu
中,所以我必须在{下定义两个sidebarMenu
{1}} 在这种情况下。以下修改解决了问题:
dashboardSidebar
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。