3

入力が混在する光沢のあるアプリと、ユーザーが入力した内容を要約する uiOutputs があります。すべての入力値をリセットして uiOutputs をクリアするボタンがありますが、uiOutputs がクリアされると、入力に基づいて更新されなくなります。

これは uiOutput をリセットしません。

library(shiny)

ui <- fluidPage(
  selectInput('select1', label = 'test', choices = c('a', 'b', 'c'), selected = character(0)),
  
  uiOutput('output1'),
  
  actionButton('reset', 'reset')
)

server <- function(input, output, session) {
  output$output1 <- renderUI(
      if(length(input$select1) > 0) { ## this essentially determines whether the input is valid
        h6(input$select1)
      } else {
        h6('')
      }
    )
  
  observeEvent(input$reset, {
    updateSelectInput(session, 'select1', selected = character(0))
    print('clicked')
  })
}

shinyApp(ui = ui, server = server)

これはリセットしますが、入力に基づいて再度更新することはできません。

library(shiny)

ui <- fluidPage(
  selectInput('select1', label = 'test', choices = c('a', 'b', 'c'), selected = character(0)),
  
  uiOutput('output1'),
  
  actionButton('reset', 'reset')
)

server <- function(input, output, session) {
  output$output1 <- renderUI(h6(input$select1))
  observeEvent(input$reset, {
    output$output1 <- renderUI(
        h6('')
    )
    updateSelectInput(session, 'select1', selected = character(0))
    print('clicked')
  })
}

shinyApp(ui = ui, server = server)

ステートメントを使用して uiOutput をリセットしrenderUI()、新しい入力が選択されたときに再度更新するにはどうすればよいですか?

ありがとう!

4

1 に答える 1