如果我在我的闪亮应用程序中有多个动态生成的actionButtons,有没有办法知道单击了哪个actionButton并执行了一些计算,并点击了按钮的Id?
小智 1
我遇到了类似的问题,尽管在我的情况下按钮不是动态生成的。从问题中尚不清楚重点是否在于“动态生成”方面。如果是的话我的回答对你没有多大帮助......
为了简化我的答案,我将问题简化为以下内容:
actionButtons我的 UI 中有两个(id="increase"和id="decrease"),并且有一个整数变量(var)和文本输出(id="actual_value")来显示实际值。其中一个按钮应将值增加一,另一个按钮应减少该值,显然输出应显示更新后的值。解决办法是:
shinyServer(function(input, output, session) {
increase <- reactive({
if( input$increase == 0 ) return( )
var <- var + 1
})
decrease <- reactive({
if( input$decrease == 0 ) return( )
var <- var - 1
})
actual.value <- reactive({
increase()
decrease()
var
})
output$actual_value <- renderText({
paste("Actual value is: ", actual.value() )
})
})
Run Code Online (Sandbox Code Playgroud)
所以解释是有两个反应性输入(即按钮)和两个相应的反应性表达式(increase和decrease)。第三个反应式表达式 ( actual.value) 取决于前两个表达式并返回 的实际值var。无功输出取决于此。
因此,您为两个按钮 (increase和decrease) 创建两个单独的反应式表达式,然后在第三个按钮 ( ) 中复用actual.value它们。
这可行,但是我不知道这是否是解决此类问题的最佳方法。
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |