2016-04-21 5 views
0

Я хотел бы установить текстовое значение для функции selectInput и сохранить значение для каждого выбора. Моя попытка не хочет работать, и я не могу понять причину.Shiny - Обновить текст ввода для выбранного ввода

У кого-нибудь есть идеи?

library(shiny) 

runApp(list(
    ui = bootstrapPage(
    sidebarPanel(
     selectInput('SELoption', label = "Select option", 
        choices = c(
        "Option 1" = 'f1', 
        "Option 2" = 'f2', 
        "Option 3" = 'f3'), 
        selected = 'f1') 
), 

    mainPanel(
    textInput("text", label = strong("Text"),value = 0) 
) 

), 

server = function(input, output, session) { 
    userEnv <- new.env() 
    userEnv$text <- NULL 

    optionID <- reactive({ 
    if(is.null(input$SELoption)){return()} 
    return(input$SELoption) 
    }) 

    observe({ 
    fID <- optionID() 

    if(!is.null(userEnv$text[[fID]])) 
     updateTextInput(session, "text", value = userEnv$text[[fID]]) 
    }) 

} 
)) 

ответ

0
library(shiny) 
library(shinyjs) 

runApp(list(
    ui = tagList(useShinyjs(),bootstrapPage(
    sidebarPanel(
     selectInput('SELoption', label = "Select option", 
        choices = c(
        "Option 1" = 'f1', 
        "Option 2" = 'f2', 
        "Option 3" = 'f3'), 
        selected = 'f1') 
    ), 

    mainPanel(
     disabled(textInput("text", label = strong("Text"),value = "f1")) 
    ) 

)), 

    server = function(input, output, session) { 


    optionID <- reactive({ 
     if(is.null(input$SELoption)){return(NULL)} 
     return(input$SELoption) 
    }) 

    observe({ 
     fID <- optionID() 

     if(!is.null(fID)) 
     updateTextInput(session, "text", value = fID) 
    }) 


    } 
)) 
+0

Спасибо за помощь, но это не спасает установленное значение, кроме идея установить номер, даже если я использую 'textinput', как с' numericinput' вы не можете установить arbitrarly – Stefano

Смежные вопросы