您好,感谢您阅读我。我目前正在尝试制作一个简单的闪亮应用程序,允许您过滤数据框,但我希望每次按下按钮时过滤器都会更新。它第一次工作,但显然之后即使您不按下按钮,observeEvent 也会保持激活状态并且信息会被过滤。有没有办法避免这种情况?
代码如下:
library(shiny)
library(dplyr)
library(shinyWidgets)
x <- tibble(
val1 = 1:5,
val2 = sample(letters,5)
)
shinyApp(
ui = fluidPage(
column(width = 3, pickerInput("filt", "filter",
choices = x$val1,
selected = x$val1,
multiple = TRUE
),
actionButton("ready", "filter data")
),
column(width = 6, textOutput("text"))
),
server = function(input, output, session){
observeEvent(input$ready,{
output$text <- renderText({
x <- x |>
filter(val1 %in% input$filt)
print(x$val2)
})
})
}
)
我认为问题出在这部分:
observeEvent(input$ready,{
output$text <- renderText({
x <- x |>
filter(val1 %in% input$filt)
print(x$val2)
})
})
非常感谢您的帮助
使用bindEvent
闪亮的功能
library(shiny)
library(dplyr)
library(shinyWidgets)
x <- tibble(
val1 = 1:5,
val2 = sample(letters,5)
)
shinyApp(
ui = fluidPage(
column(width = 3, pickerInput("filt", "filter",
choices = x$val1,
selected = x$val1,
multiple = TRUE
),
actionButton("ready", "filter data")
),
column(width = 6, textOutput("text"))
),
server = function(input, output, session){
output$text <- renderText({
x <- x |>
filter(val1 %in% input$filt)
print(x$val1)
}) |>
bindEvent(input$ready)
}
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句