我正在尝试为我的UI生成一些输入,具体取决于actionButton的值。生成textInputs工作正常(请参阅下面的可重现代码),但生成actionButtons似乎很棘手。
以下是代码:
shiny::runApp(
list(
ui = pageWithSidebar(
headerPanel("test"),
sidebarPanel(
actionButton("create","create")
),
mainPanel(
uiOutput('the_textInputs'),
uiOutput('the_buttons')
))
,
server = function(input,output){
observe({
if (input$create == 0)
return()
isolate({
output$the_textInputs <- renderText({ #this works nicely
A <- paste0("<input id='A", 1:input$create, "' class='shiny-bound-input' type='text' value=''>")
})
output$the_buttons <- renderUI({ # this does not work properly, probably due to the html commands here below not well specified
B <- paste0("<input id='B", 1:input$create, "' class='btn action-button' type='button' >")
})
})
})
}
))
任何建议或建议都将受到高度赞赏!
干杯
答案 0 :(得分:2)
在renderUI
中,您只能使用“返回Shiny标记对象,HTML或此类对象列表的表达式。”
您必须更改output$the_buttons <- renderText
或renderUI
函数将字符串转换为HTML:B <- HTML(paste0("<input id='B", 1:input$create, "' class='btn action-button' type='button' >"))