我需要在我闪亮的应用程序中动态生成用户界面。这涉及在某些条件下使用 insertUI 将 rpivotTable 插入 UI 页面。我发现我只能成功地做到这一点。删除元素并再次插入后,它不会出现。问题仅与 rpivotTable 有关。所有其他界面元素,如 dataTable、actionButton 等都运行良好。以下是重现该问题的示例代码:
library(shiny)
library(rpivotTable)
ui<- fluidPage(title="test page",
actionButton("A","insert pivot"),
actionButton("B","remove pivot")
)
server<- function (input, output, session)
{
ds<-data.frame(a="1",b="2")
observeEvent(input$A,{
cat("insert\n")
insertUI(selector="#B",
where="afterEnd",
ui=rpivotTableOutput("C"),
immediate = T)
output$C <- renderRpivotTable({ rpivotTable(data = ds) })
})
observeEvent(input$B,{
cat("remove\n")
removeUI(selector="div#C",immediate = T)
})
}
shinyApp(ui,server)
任何建议如何解决这个问题?