Une question basique mais à laquelle je ne trouve de réponse nulle part (forums,...)
je souhaite mettre à jour la valeur d'une liste suite à un actionButton et à un selectInput qui permettra de déterminer la place de l'élément à mettre à jour.
Tout marche bien sauf que lorsque l'utilisateur change le selectInput et qu'il valide, celui-ci revient à sa valeur "selected".
Voici mon code simplifié :
Code : Tout sélectionner
library(shiny)
runApp(list(
ui = bootstrapPage(
uiOutput("choix"),
uiOutput("valid")
),
server = function(input, output) {
output$choix <- renderUI({
selectInput("exchoix","",choices = names(flag$temp), selected = names(flag$temp)[1])
})
output$valid <- renderUI({
actionButton("valid","valider")
})
flag = reactiveValues(temp = list(
sample1 = list(
type = NA
),
sample2 = list(
type = NA
)
))
observe({
if(is.null(input$valid)){}
else{
isolate({
if(input$valid > 0){
flag$temp[[grep(isolate(input$exchoix),names(flag$temp))]]$type <- 1
print(flag$temp[[grep(isolate(input$exchoix),names(flag$temp))]]$type)
}
})
}
})
}
))
J'ai remarqué que :
1. ce problème ne se produit que la première fois que l'utilisateur change le selectInput. les autres fois, le script marche nickel.
2. Si on laisse que juste le print, pas de problème, j'ai vraiment l'impression que c'est l'attribution d'une valeur qui pose problème !
Est-ce que quelqu'un a été dans une situation similaire ?
Merci beaucoup de votre aide!!!
Cha