
现在,我将右侧的UI封装为一个变量,并希望右侧的UI基于"Module“进行更改。我现在要做的就是:
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")
)
)
)
)
)但是,相反,我得到了这个奇怪的文本(我想这是一个引导类或其他什么的),应该是来自标签.而不是完整的对象。
我做错了什么?一旦我将对象的类型分配给一个向量,它的类型是否被改变?
发布于 2015-07-16 02:54:39
结果表明,通过将闪亮的UI元素传递给向量,您将隐式地删除对象.的一些信息。
解决方案是使用列表,并使用双方括号索引:
rval$module_ui <- list(ui_core)
rval$module_ui <- c(rval$module_ui, list(module))连接函数c()对列表的工作原理非常相同,但确保在连接之前将“原子”或原子组件转换为列表。
https://stackoverflow.com/questions/31444641
复制相似问题