过滤器不响应我的闪亮应用程序中的应用和清除按钮

泽斯拉

我正在构建一个闪亮的应用程序,以在地图上可视化酒店(使用传单包)。我有一个下拉列表,可以加载一部分数据。除此之外,我还想在左上角建立一个过滤器按钮,在其中可以用来按年份进一步过滤数据。

我希望过滤器仅在单击apply按钮时响应另外,单击clear按钮后,我想清除过滤器

下面是我闪亮的应用程序代码。看来我applyclear按钮不起作用。从筛选器下拉列表中选择年份后,我的地图就会刷新。我希望仅在单击apply按钮后刷新它过滤器也不会响应“清除”。我花了几个小时,却找不到原因。有谁知道我做错了。

这是一个非常简化的版本。我的实际应用程序要复杂得多。下拉按钮中有多个过滤器。

library(shiny)
library(leaflet)
library(shinyjs)
library(shinyWidgets)
library(dplyr)


df <- read.table(text = "Name Year Value longitude  latitude
                         A   2020  12    -106.50645 35.06745
                         B   2020  33    -116.00994 36.21834
                         C   2020  44    -115.24685 36.29460
                         A   2019  55    -115.24685 35.06745
                         B   2019  22    -118.18642 33.98881
                         C   2019  11    -111.83064 35.06745", 
                     header = TRUE)


ui <- fluidPage(
    
    selectizeInput(inputId = 'hotel', label='Hotel Type:',
                   choices = c('A', 'B', 'C'),
                   multiple=TRUE,
                   options = list(
                       maxItems = 1,
                       placeholder = '',
                       onInitialize = I("function() { this.setValue(''); }"))),
    actionButton("load", "load"),
    
    
    div(id = 'map_filter',
        dropdown(
            tags$h3("Filters"),
            selectizeInput(inputId = 'year', label='Choose Year:',
                           choices = c(2020,2019),
                           multiple=TRUE,
                           options = list(
                               maxItems = 2,
                               placeholder = '',
                               onInitialize = I("function() { this.setValue(''); }"))),
            #uiOutput('map_zipcode_prod2ui') ,
            # column(width=1, offset = 1, actionButton(inputId='map_zipcode_applyProductFilter',
            #                                          label='Apply Filter', style = 'margin-top:25px') )
            actionBttn(
                inputId = 'applyFilter',
                label = "Apply",
                style = "gradient",
                color = "danger",
                icon = icon("") ) ,
            actionBttn(
                inputId = 'clearFilter',
                label = "Clear",
                style = "gradient",
                color = "danger",
                icon = icon("") ) ,
            style = "unite", icon = icon("filter"),
            status = "danger", width = "300px"
        )  #dropdown
    ), #div
    
    
    leafletOutput("mymap")
    
)

server <- function(input, output, session) {
    
    df1 = eventReactive (input$load, {
        
        df %>% filter(Name == input$hotel)
    })
    
    df2 = reactive({
        if (length(input$year)==0) {
            df2 = df1()
        } else {
            df2 = df1() %>% filter(Year %in% input$year)
        }
    })
    
    # clear all filters
    observeEvent(input$clearFilter, {
        reset("map_filter")
    })
    
    
    observeEvent(c(input$load,input$applyFilter), ignoreInit = T, ignoreNULL = T, {
        
        output$mymap <- renderLeaflet({
            map <- leaflet()  %>%
                addProviderTiles("OpenStreetMap.Mapnik") %>% 
                addCircleMarkers( data = df2(),
                                  #group = 'Data Markers 1',
                                  lng = ~longitude,
                                  lat = ~latitude,
                                  radius = 10,
                                  stroke = F,
                                  fillOpacity = 0.9,
                                  color = 'red')
            
        })
    })
}

shinyApp(ui, server)
Ben

这是一种方法-希望这会有所帮助。

您可以将地图存储在中reactiveVal然后,使用负载更新地图或应用过滤器按钮。否则,地图将不会更改。

将考虑使用updateSelectizeInput清除您的过滤器。

编辑:基于注释,df1并且df2不合并。

server <- function(input, output, session) {

  map <- reactiveVal(NULL)

  df1 = reactive({
    req(input$hotel)
    filter(df, Name == input$hotel)
  })
  
  df2 = reactive({
    if (length(input$year)==0) {
      df2 = df1()
    } else {
      df2 = df1() %>% filter(Year %in% input$year)
    }
  })

  # clear all filters
  observeEvent(input$clearFilter, {
    updateSelectizeInput(session, inputId = 'year', selected = "")
  })

  output$mymap <- renderLeaflet({
    map()
  })

  observeEvent(c(input$load, input$applyFilter), ignoreInit = T, ignoreNULL = T, {
    map(leaflet()  %>%
      addProviderTiles("OpenStreetMap.Mapnik") %>%
      addCircleMarkers( data = df2(),
                        #group = 'Data Markers 1',
                        lng = ~longitude,
                        lat = ~latitude,
                        radius = 10,
                        stroke = F,
                        fillOpacity = 0.9,
                        color = 'red')
    )
  })

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

过滤器不响应我的闪亮应用程序中的应用和清除按钮

来自分类Dev

在闪亮的应用程序中的输入过滤器中添加“所有值”

来自分类Dev

为什么我的复选框按钮在shinny应用程序中不响应?

来自分类Dev

R Shiny 应用程序中的外部过滤器

来自分类Dev

闪亮的应用程序下载按钮仅响应HTML

来自分类Dev

即使我的应用程序为其注册了意图过滤器,也可以在浏览器中打开URL

来自分类Dev

消息过滤器指示应用程序繁忙

来自分类Dev

AuthorizeAttribute 过滤器上的应用程序令牌错误

来自分类Dev

使用滑杆清除闪亮应用程序中的传单标记

来自分类Dev

如何通过广播获取意图过滤器和应用程序名称

来自分类Dev

Web应用程序中的过滤器与拦截器

来自分类Dev

从Web应用程序中的servlet过滤器重定向到上一页

来自分类Dev

在Spring Boot应用程序中添加Servlet过滤器

来自分类Dev

Backgrid过滤器在骨干应用程序中不起作用

来自分类Dev

Flask应用程序中更智能的sqlalchemy wtf动态过滤器

来自分类Dev

如何在Spring Boot Web应用程序中配置2个单独的过滤器?

来自分类Dev

在闪亮的应用程序中使用滑块和操作按钮

来自分类Dev

闪亮的应用程序中的“重置输入”按钮

来自分类Dev

根据闪亮的应用程序中的行长停用操作按钮

来自分类Dev

在闪亮的应用程序中对齐单选按钮选项和滑块

来自分类Dev

在 JTable 过滤器中应用和调用 2 个过滤器

来自分类Dev

清除EditText的按钮使我的应用程序崩溃

来自分类Dev

闪亮的应用程序:禁用下载按钮

来自分类Dev

闪亮的应用程序,图表的下载按钮

来自分类Dev

应用程序不响应iOS 7中的报亭通知(在iOS 6和更早版本上运行)

来自分类Dev

为什么logcat不显示有关我的应用程序的信息?添加过滤器后?

来自分类Dev

**编辑**如何在我的Android应用程序中设置缓存清除按钮

来自分类Dev

单击“应用”按钮后应用angularjs过滤器

来自分类Dev

单击“应用”按钮后应用angularjs过滤器

Related 相关文章

  1. 1

    过滤器不响应我的闪亮应用程序中的应用和清除按钮

  2. 2

    在闪亮的应用程序中的输入过滤器中添加“所有值”

  3. 3

    为什么我的复选框按钮在shinny应用程序中不响应?

  4. 4

    R Shiny 应用程序中的外部过滤器

  5. 5

    闪亮的应用程序下载按钮仅响应HTML

  6. 6

    即使我的应用程序为其注册了意图过滤器,也可以在浏览器中打开URL

  7. 7

    消息过滤器指示应用程序繁忙

  8. 8

    AuthorizeAttribute 过滤器上的应用程序令牌错误

  9. 9

    使用滑杆清除闪亮应用程序中的传单标记

  10. 10

    如何通过广播获取意图过滤器和应用程序名称

  11. 11

    Web应用程序中的过滤器与拦截器

  12. 12

    从Web应用程序中的servlet过滤器重定向到上一页

  13. 13

    在Spring Boot应用程序中添加Servlet过滤器

  14. 14

    Backgrid过滤器在骨干应用程序中不起作用

  15. 15

    Flask应用程序中更智能的sqlalchemy wtf动态过滤器

  16. 16

    如何在Spring Boot Web应用程序中配置2个单独的过滤器?

  17. 17

    在闪亮的应用程序中使用滑块和操作按钮

  18. 18

    闪亮的应用程序中的“重置输入”按钮

  19. 19

    根据闪亮的应用程序中的行长停用操作按钮

  20. 20

    在闪亮的应用程序中对齐单选按钮选项和滑块

  21. 21

    在 JTable 过滤器中应用和调用 2 个过滤器

  22. 22

    清除EditText的按钮使我的应用程序崩溃

  23. 23

    闪亮的应用程序:禁用下载按钮

  24. 24

    闪亮的应用程序,图表的下载按钮

  25. 25

    应用程序不响应iOS 7中的报亭通知(在iOS 6和更早版本上运行)

  26. 26

    为什么logcat不显示有关我的应用程序的信息?添加过滤器后?

  27. 27

    **编辑**如何在我的Android应用程序中设置缓存清除按钮

  28. 28

    单击“应用”按钮后应用angularjs过滤器

  29. 29

    单击“应用”按钮后应用angularjs过滤器

热门标签

归档