更新文本输出R闪亮

时间:2017-08-10 14:03:09

标签: r shiny

我想在每次动作时更新textOutput,我该怎么做呢?我试过这个,但似乎我走错了路。 我只想更新每次出现错误时都会出现的错误消息。如果没有错误则保持空白。

shinyServer(function(input, output, session) {
  cube <- NULL
  paramTemp <- NULL
  message <- ""

  observe({
    updateSelectInput(session, "choixDim", choices = param[name == input$choixCube, dim][[1]])
    updateSelectInput(session, "choixMes", choices = param[name == input$choixCube, mes][[1]])
  })

  output$ajoutColonneUi <- renderUI({
    tagList(
      if(input$ajoutColonne != "Aucun"){
        textInput("nomCol", "Nom de la colonne créée")
      },
      switch(input$ajoutColonne,
             "Ratio de deux colonnes" = tagList(
               selectInput("col1", label = "Colonne 1", choices = input$choixMes),
               selectInput("col2", label = "Colonne 2", choices = input$choixMes)
             ),
             "Indice base 100" = selectInput("col", label = "Colonne", choices = input$choixMes),
             "Evolution" = selectInput("col", label = "Colonne", choices = input$choixMes)
      )
    )
  })

  observeEvent(input$chargerCube,{
    debutChargement()
    paramTemp <- param[name == input$choixCube]
    if(!is.null(input$choixDim) && !is.null(input$choixMes)){
      cube <<- creerCube(input$choixDim, input$choixMes, paramTemp$temp, paramTemp$path)
    }
    else{
      message <<- "Erreur : Veuillez selectioner au moins une dimension et une mesure"
    }
    finChargement()
    if(!is.null(cube)){
      cat('Cube chargé avec succés ! \n')
      output$handlerExport <- downloadHandler(
        filename = function(){
          paste0("cube_generated_with_shiny_app",Sys.Date(),".csv")
        },
        content = function(file){
          fwrite(cube, file, row.names = FALSE)
        }
      )
      output$boutons <- renderUI({
        tagList(
          downloadButton("handlerExport", label = "Exporter le cube"),
          actionButton("butValider", "Rafraichir la table/le graphique")
        )
      })
    }
  })

  observeEvent(input$butValider,{
    output$pivotTable <- renderRpivotTable({
      paramTemp <- param[name == input$choixCube]
      rpivotTable(data = cube, aggregatorName = "Sum", vals = input$choixMes[1], cols = paramTemp$temp)
    })
  })

  output$message <- renderText({message})

})

谢谢!

1 个答案:

答案 0 :(得分:0)

我在一些我的Shiny Apps中加入了一些错误消息。在您将UI文件发布到应用程序之前,我无法为您提供修复应用程序的确切代码。请尝试仅在message函数中更新renderText输出,如:

output$message <- renderText({
    if(!is.null(input$choixDim) && !is.null(input$choixMes)){
        return()
    }
    else
        paste("Erreur : Veuillez selectioner au moins une dimension et une mesure"
})

祝你好运!