微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将条件文本输出添加到 cardprofile

如何解决将条件文本输出添加到 cardprofile

我正在使用 cardProfile 库中的 bs4Dash 在我的 Shiny 应用中显示当前用户

cardProfile 在 ui 部分如下所示:

   cardProfile(
     src = "logo.png",title = 'SHOW HERE THE USERNAME'
     subtitle = "Administrator",cardProfileItemList(
       bordered = TRUE,cardProfileItem(
         title = "Email",description = 'SHOW HERE THE EMAIL'
       )
     )

我应该在标题和描述中使用什么来根据输入显示姓名和电子邮件

我尝试过使用 textoutput

title = textoutput('title')

description = textoutput('email')

server 部分的响应式没有结果:

reactive({
  USER <- input$user
  output$title<- USER 
  output$email<- usuarios$email[usuarios$usuario == USER ]
})

解决方法

您需要在 renderUI() 中定义您的卡片服务器端,然后使用 UIOuptut() 将其显示在 UI 中。

几乎每次您需要在 UI 中显示响应式内容时,您都必须在服务器端对其进行编码或在它存在时使用 updateInput 函数。

library(shiny)
library(bs4Dash)

df_email <- data.frame(user = "toto",email = "toto@toto.com")

shinyApp(
  ui = dashboardPage(,header = dashboardHeader(),sidebar = dashboardSidebar(),body = dashboardBody(
                       bs4Card(
                         uiOutput("card_user")
                       )
                     ),title = "DashboardPage"
  ),server = function(input,output) { 

    # USER <- reactive(input$user) #uncomment
    USER <- reactive("toto") #comment
    
    output$card_user <- renderUI({
      cardProfile(
        # src = "logo.png",title = 'SHOW HERE THE USERNAME',subtitle = "Administrator",cardProfileItem(
          title = USER(),description = df_email$email[df_email$user == USER()] #replace with your own data
          
        )
      )
    })
    }
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。