如何重置几个actionButtons的值? (闪亮包装)

时间:2013-12-30 19:08:59

标签: r button shiny

我创建了一些逻辑,我试图添加几个actionButtons,但一切都正常,直到每个按钮被单击一次。当每个按钮被点击一次时,所有按钮都会自动点击第二次,第三次等迭代。如何重置actionButton的值或者我应该更改服务器端的整个逻辑?

observe({
  if (input$actionButton_1 == 0)
    return()
  isolate({
    # logic
  })
 if (input$actionButton_2 == 0)
    return()
  isolate({
    # logic
  })
 ...
})

2 个答案:

答案 0 :(得分:2)

好吧,没有ui.R很难弄清楚发生了什么,但actionButton(...)在文档中的定义如下:

Creates an action button whose value is initially zero, 
and increments by one each time it is pressed.

所以actionButtons最初都设置为0。一旦你全部按下它们,代码中的所有条件都将测试为FALSE(例如,!= 0),并且只要按下任何按钮,就会显示所有按钮都被按下了。

您确定不想使用submitButton(...)吗?

答案 1 :(得分:1)

为了我的目的,我为每个actionButton创建了observe(),并且让我们说在其他observe()中使用actionButton输出我使用全局“output<< - f()”。也许,这个解决方案不是最好的,但它有效......

observe({
  if (input$actionButton_1 == 0)
    return()
  isolate({
    # logic
  })
 })
observe({ 
if (input$actionButton_2 == 0)
    return()
  isolate({
    # logic
  })
}) 


...