首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将rpivotTable动态插入闪亮的UI

如何将rpivotTable动态插入闪亮的UI
EN

Stack Overflow用户
提问于 2019-04-05 19:54:43
回答 1查看 120关注 0票数 0

我需要在我的闪亮应用程序中动态生成用户界面。这涉及到使用insertUI在某些条件下将rpivotTable插入到UI页面。我发现我只能成功地做到这一点。移除该元素并重新插入后,该元素不会出现。此问题仅与rpivotTable有关。所有其他界面元素,如dataTable、actionButton等都工作得很好。以下是重现该问题的示例代码:

代码语言:javascript
复制
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)

有什么建议可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2019-04-10 22:37:36

此问题也作为问题发布在rpivotTable GitHub中,并在那里使用以下解决方案代码回答:

代码语言:javascript
复制
library(shiny)
library(rpivotTable)

ui<- fluidPage(title="test page",
               actionButton("A","insert pivot"),
               actionButton("B","remove pivot"),
               div(id = 'placeholder') 
)

server<- function (input, output, session)
{
  ds<-data.frame(a="1",b="2")
  inserted <- c()

  observeEvent(input$A, {
    btn <- input$A
    id <- paste0('txt', btn)
    insertUI(
      selector = '#placeholder',
      ## wrap element in a div with id for ease of removal
      ui = div(
        rpivotTable(ds), 
        id = id
      ))
    inserted <<- c(id, inserted)
  })
  observeEvent(input$B, {
    removeUI(
      ## pass in appropriate div id
      selector = paste0('#', inserted[length(inserted)])
    )
    inserted <<- inserted[-length(inserted)]
  })
}

shinyApp(ui,server)

我假设解决方案基本上是为每个新的insertUI使用新的唯一Id。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55534814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档