R 随用户变化的HTML代码';s输入闪亮

R 随用户变化的HTML代码';s输入闪亮,r,rstudio,shiny,R,Rstudio,Shiny,以下是我问题的基本要点: 简而言之,假设ui.R中的用户使用常规文本输入插入艺术家的姓名。然后将其保存在输入$artist\u name中 切换到server.R,然后使用一些中间调用和计算来显示艺术家的顶级曲目的一些统计信息。然后我使用renderPlot()在output$plot中放置一个绘图 这里是我遇到麻烦的地方。我想包括一个播放器(只使用基本HTML,这不是问题),允许用户播放曲目。然而,在我看来,似乎我需要使用我在server.R中获得的信息(因为在这里我了解了最流行的曲目是什么,

以下是我问题的基本要点:

  • 简而言之,假设
    ui.R
    中的用户使用常规文本输入插入艺术家的姓名。然后将其保存在
    输入$artist\u name
  • 切换到
    server.R
    ,然后使用一些中间调用和计算来显示艺术家的顶级曲目的一些统计信息。然后我使用
    renderPlot()
    output$plot
    中放置一个绘图
  • 这里是我遇到麻烦的地方。我想包括一个播放器(只使用基本HTML,这不是问题),允许用户播放曲目。然而,在我看来,似乎我需要使用我在
    server.R
    中获得的信息(因为在这里我了解了最流行的曲目是什么,然后是它的URL)将曲目的URL“推”回
    ui.R
    ,这样我就可以使用
    HTML()
    函数将播放器包含在面板中。这可能吗?在我看来,我想做的似乎类似于使用
    uiOutput()
    renderUI()
    所能做的,尽管显然不是根据用户的输入创建自定义UI,而是根据输入创建一些自定义HTML代码

  • 非常感谢您的帮助

    我不确定您到底在问什么,但在服务器中创建任意HTML并将其发送到UI并不太难。以下是一个例子:

    library(shiny)
    
    ui =fluidPage(
        textInput("test","Write here"),
        uiOutput("example")
      )
    
    server=shinyServer(function(input, output, session) {
    
    
        output$example <- renderUI({
          HTML(paste0("<div style='color:red;'>",input$test,"</div>"))
        })
    
    })
    
    shinyApp(ui=ui,server=server)
    
    库(闪亮)
    ui=fluidPage(
    textInput(“测试”,“在此处写入”),
    uiOutput(“示例”)
    )
    服务器=shinyServer(功能(输入、输出、会话){
    
    output$example您可以使用
    renderUI
    发送任意HTML,只要输出被包装在
    HTML()