【发布时间】:2018-05-26 22:51:13
【问题描述】:
我有一个带有 2 个选项卡的应用程序,每个选项卡都有一个操作按钮。如果按下任一按钮,我希望触发相同的过程。所以我是这样写的:
library(shiny)
ui <- fluidPage(
tabsetPanel(
tabPanel("tab1",
actionButton("btn1","Button 1"),
textOutput("text")
),
tabPanel("tab2",
actionButton("btn2","Button 2")
)
)
)
server <- function(input, output) {
data=eventReactive(c(input$btn1,input$btn2),{
print("Button is pressed!")
print(input$btn1)
print(input$btn2)
iris
})
output$text=renderText({
req(data())
print(head(data()))
"Really? Button is pressed!"
})
}
# Run the application
shinyApp(ui = ui, server = server)
而且我不明白为什么会在应用初始化时触发eventReactive 表达式,然后再按下任何按钮。
如果我只使用 1 个按钮,即 input$btn1 而不是 c(input$btn1, input$btn2),那么我会得到预期的行为,但不会使用 2 个依赖项。
谁能启发我?
【问题讨论】: