使用反应式应用程序重置输入

时间:2017-06-27 12:00:58

标签: r shiny shinyjs

我想添加一个动作按钮来重置我的输入。 例如,我希望所有输入都包含"所有名称" "所有性别"和#34;所有年龄" ...

我尝试过使用shinyjs但不幸的是没有工作

任何帮助将不胜感激

directorynames

............................................... .................................................. ...............................................

1 个答案:

答案 0 :(得分:1)

以下是适用于您的代码:

sortButtonClick(){

  let grid = document.querySelector('.grid');
  let iso = new Isotope(grid, {
      sortBy: 'random'
    }
  );
}

有两件事情造成了问题,而不是包l <- NULL l$name <- c('b','e','d','b','b','d','e','e','b','b') l$age <- c(20,20,21,21,20,22,22,30,21,32) l$gender <- c('Female', 'Female', 'Male', 'Female', 'Male','Male', 'Female','Male',"Female","Male") l <- as.data.frame(l) l$name <- as.character(l$name) l$age <- as.numeric(l$age) l$gender <- as.character(l$gender) library(shiny) library(shinyjs) server <- shinyServer(function(input,output){ observeEvent(input$reset, { shinyjs::reset("name") shinyjs::reset("age") shinyjs::reset("gender") }) # DEfinition of all values of my variables assign('All Names',unique(sort(l$name))) assign("All Ages", unique(sort(l$age))) assign('All Genders', unique(sort(l$gender))) data1 <- reactive({ l[which(l$name %in% if(exists(input$name)) {get(input$name)}else{input$name}),] }) data2 <- reactive(data1()[which(data1()$age %in% if(exists(input$age)) {get(input$age)}else{input$age}),]) data3 <- eventReactive(input$baba, { data2()[which(data2()$gender %in% if(exists(input$gender)) {get(input$gender)}else{input$gender}),] }) output$table3 <- renderTable({ data3() }) output$Box1 = renderUI( if((is.null(input$age)) & (is.null(input$gender))){ selectInput("name", "Choose Name", choices=c("All Names",unique(sort(l$name))), selected = "All Names") } else{selectInput("name", "Choose Name", choices=c("All Names", unique(l[l$gender %in% (if(exists(input$gender)){ get(input$gender) }else{ input$gender}) & l$age %in% (if(exists(input$age)){ get(input$age) }else{input$age}), "name"])), selected = "All Names") } ) output$Box2 = renderUI( if((is.null(input$name)) & (is.null(input$gender))){ selectInput("age", "Choose Age", choices=c("All Ages", unique(sort(l$age))), selected = "All Ages") }else{selectInput("age", "Choose Age", choices=c("All Ages",unique(l[l$gender %in% (if(exists(input$gender)){get(input$gender)}else{input$gender}) & l$name %in% (if(exists(input$name)){get(input$name)}else{input$name}) , "age"])), selected = "All Ages")} ) output$Box3 = renderUI( if((is.null(input$name)) & (is.null(input$age))){ selectInput("gender", "Choose Gender", choices=c("All Genders", unique(sort(l$gender))), selected = "All Genders") }else{ selectInput("gender", "Choose Gender", choices=c("All Genders", unique(l[l$name %in% (if(exists(input$name)){get(input$name)}else{input$name}) & l$age %in% (if(exists(input$age)){get(input$age)}else{input$age}), "gender"])), selected = "All Genders") } ) }) ui <-shinyUI(fluidPage( useShinyjs(), uiOutput("Box1"), uiOutput("Box2"), uiOutput("Box3"), actionButton("baba", "GO !"), actionButton("reset", "reset"), tableOutput("table3") )) shinyApp(ui,server) ,而是你的代码:

1。您在小部件中没有shinyjs值,例如:selected但没有固定值可重置为(我已将其更改为selected = input$age等等。)

2。您应该将selected = "All ages"功能与小部件的 ID 一起使用,例如在您的情况下:名称,年龄和性别,而不是您有:Box1,Box2,Box3