簡體   English   中英

閃亮-uiOutput和UI布局問題

[英]Shiny - uiOutput and UI layout problems

為什么我會收到“ col-sm-4”?

現在,我將右側的UI封裝為變量,並且希望右側的UI根據“所選模塊”進行更改。 這是我現在正在做的事情:

ui <- navbarPage('test',
  tabPanel('Analysis',
    fluidRow(
      ui_core,
      uiOutput('ui_module')
    ) 
  )
)

output$ui_module <- renderUI({
# observeEvent(input$core_module_selection, {
  current_module <- NULL
  if(!is.null(input$core_module_selection) && input$core_module_selection != 'Core') {
    current_module <- rval$module_ui[[match(input$core_module_selection, rval$module_names)]]
    rval$ui_module <<- current_module
  }

  return(rval$ui_module)
})

我對ui_module變量使用反應性值(rval),該變量包含要渲染的UI:

ui_filetrans <-
tabsetPanel(
  tabPanel('File Transfer',
    p("filetrans")
  )
)
register_module("File Transfer", ui_filetrans)

最終應該像這樣:

ui <- navbarPage('Granatum',
  tabPanel('Analysis',
    fluidRow(
      ui_core,
      tabsetPanel(
        tabPanel('File Transfer',
          p("filetrans")
        )
      )
    ) 
  )
)

但是,相反,我得到了這個奇怪的文本(我猜這是Bootstrap類之類的東西),它應該來自標簽……而不是整個對象。

我究竟做錯了什么? 將對象分配給矢量后,對象的類型是否會更改?

事實證明,通過將Shiny UI元素傳遞給矢量,您將隱式刪除對象的某些信息。

解決方案是使用列表,並使用雙方括號為索引建立索引:

rval$module_ui <- list(ui_core)

rval$module_ui <- c(rval$module_ui, list(module))

c()的連接函數對於列表的工作原理非常相似,但是請確保在連接之前將“原子”或原子組件轉換為列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM