【问题标题】:how to reset shiny actionButton in R?如何在 R 中重置闪亮的 actionButton?
【发布时间】:2017-02-10 13:31:36
【问题描述】:

我只想在按下actionButton 时执行一次 if 语句。所以,我想重置actionButton,因为 if 语句是连续执行的。 T.T

这是我的代码。

      output$action_btn <- renderUI({
        actionButton("act_btn", class="btn-primary", "active")
      })

      output$test <- renderPlot({
        if(input$act_btn!= 0){
         (execution code..)
        }
      })

      input$act_btn <- 0  #This is Error.

当我按下 actionButton 时,效果很好。

问题是input$act_btn &lt;- 0。我想重置act_btn的值。

有没有办法解决这个问题?

【问题讨论】:

标签: r action-button


【解决方案1】:

有点晚了,不过我最近刚刚经历了这个过程,发现this blog post from Antoine Guillot很有帮助。

本质上,他在 JS 客户端创建了一个代理变量,该变量总是在按钮单击时更新。然后在您的 r 代码中,您观察代理变量并可以继续执行逻辑,就好像您已将按钮状态重置为 0。

tags$script("$(document).on('click', '#Main_table button', function () {
 Shiny.onInputChange('lastClickId',this.id);
 Shiny.onInputChange('lastClick', Math.random())
});")

在此代码中,闪亮输出#Main_table 中包含button 的任何点击事件都将触发onClick 事件。然后使用闪亮的 js 命令,创建一个新的input 变量,该变量现在包含单击按钮的 id。

你会注意到

Shiny.onInputChange('lastClick', Math.random())

这是您用于observeEvent 并采取行动的“代理”。

第 f 节。这里http://enhancedatascience.com/2017/03/01/three-r-shiny-tricks-to-make-your-shiny-app-shines-33-buttons-to-delete-edit-and-compare-datatable-rows/

希望它能像对我一样帮助别人。

【讨论】:

    猜你喜欢
    • 2018-10-19
    • 2017-04-10
    • 2020-01-18
    • 2023-03-25
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    相关资源
    最近更新 更多