我想在每次动作时更新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})
})
谢谢!
答案 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"
})
祝你好运!