【问题标题】:R Shiny only renderDataTable after actionbutton clicked单击操作按钮后,R Shiny 仅渲染数据表
【发布时间】:2021-02-10 06:31:47
【问题描述】:

我希望用户单击一个按钮,然后调用 renderDataTable 函数

这就是我现在正在做的事情:

用户界面有这个:

ui <- fluidPage(
 actionButton("tbl","Show Table"),
 DT::dataTableOutput("t_all")
)

服务器:

server <- function(input, output){

summary_table_RCT <- eventReactive(input$tbl, {summary_table})

output$t_all <-
DT::renderDataTable(
  summary_table_RCT(), 
  filter = 'top',
  class = "cell-border stripe",
  rownames = FALSE,
  extensions = c("FixedColumns"),
  options = list(searchHighlight = TRUE, 
                 regex = TRUE,
                 scrollX = TRUE,
                 fixedColumns = list(leftColumns = 5)) 
)
}

shinyApp(ui, server)

不确定为什么它不起作用这与我看到的一些 eventReactive() 示例几乎相同。我看到按钮出现了,但单击时它什么也没做。

【问题讨论】:

  • 如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。如果我们可以实际运行代码,那么为您提供帮助会容易得多。你确定summary_table 有值吗?
  • 抱歉,我无法分享更多内容,因为这是为了工作。但是所有相关的元素都在上面。我有一个操作按钮。点击后,我想创建一个反应式数据框,我想使用 renderDataTable 函数渲染它。
  • 如果我在一个简单的闪亮应用程序中将{summary_table} 替换为iris,它会如您所愿。按下按钮后,表格出现。我无法从给定的信息中复制您描述的问题。
  • 当我将 summary_table_RCT() 切换到 summary_table 时,它​​工作正常,因此数据正在通过,但是当按下按钮时,事件反应似乎并没有返回数据集。跨度>
  • 您确定您输入的按钮名称正确吗?除非您可以在您的问题中创建一个可重现的示例,否则我不确定如何提供帮助。一定有一些事情没有包含在您发布的内容中。你用的是什么版本的 Shiny?

标签: r shiny


【解决方案1】:

找到了答案,希望经历过同样挫折的人能在这让他们发疯之前找到答案。但是在应用程序的另一个选项卡中,另一位开发人员使用了 submitButton(),它基本上会中断所有反应事件,直到按下按钮。只应在非常简单的应用中使用,您只有一个按钮。

【讨论】:

  • 您介意实际分享代码或您提到的答案的链接吗?
  • 这就是答案。对不起,我没有在其他帖子中找到它,我自己想通了。基本上 submitButton() 会中断一切,永远不要使用它。
猜你喜欢
  • 1970-01-01
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
  • 2021-02-05
  • 2019-04-07
  • 2018-11-14
相关资源
最近更新 更多