现在,我将右侧的UI封装为变量,我希望右侧的UI基于"模块选择进行更改。"以下是我现在正在做的事情:
int main()
{
int increment;
int input_variable;
bool stop_printing = true;
cout << "Input: ";
cin >> input_variable;
cout << "Increment: ";
cin >> increment;
int counter = 0;
do
{
counter += increment;
cout << "Result: " << counter << endl;
if (counter >= input_variable)
{
stop_printing = false;
}
} while (stop_printing == true);
return 0;
}
我使用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)
})
变量的反应值(rval),该变量包含我想要呈现的UI:
ui_module
应该像这样结束:
ui_filetrans <-
tabsetPanel(
tabPanel('File Transfer',
p("filetrans")
)
)
register_module("File Transfer", ui_filetrans)
但是,相反,我得到了这个奇怪的文本(我猜它是一个Bootstrap类或其他东西),据说它来自标签......而不是完整的对象。
我做错了什么?一旦将对象的类型分配给向量,对象的类型是否会被更改?
答案 0 :(得分:0)
事实证明,通过将Shiny UI元素传递给向量,您将隐式删除对象的一些信息。
解决方案是使用列表,并使用双方括号来索引:
rval$module_ui <- list(ui_core)
rval$module_ui <- c(rval$module_ui, list(module))
c()
,连接函数对列表的作用非常相似,但要确保在连接之前将“atoms”或原子组件转换为列表。