【问题标题】:Add to a list in Shiny在 Shiny 中添加到列表
【发布时间】:2014-05-26 16:54:07
【问题描述】:

我想定义一个用户可以通过执行某些操作来更新的列表。我这样做了:

runApp(list(
  ui=fluidPage(
    h1('Example')
    ,textInput('txt','','Text')
    ,actionButton('add','add')
    ,verbatimTextOutput('list')
    )#ui

  ,server=function(input,output,session) {
    s.list<-reactive(isolate(d.list()))
    d.list<-reactive({if (input$add == 0)   return()
                      isolate({
      list(input$txt,unlist(s.list()))
                      })#iso
    })#rea
    output$list<-renderPrint({
      list(unlist(d.list()))
    })#list
  }#server

  ))#ruanApp

但是列表会无限更新很多次,有没有人知道一种方法来完成这项工作?

【问题讨论】:

  • 如果可以,我会再次 +1 以解决在涉及 shiny 时通常缺少的可重现问题

标签: r list global shiny


【解决方案1】:

你可以使用reactiveValues

require(shiny)
runApp(list(
  ui=fluidPage(
    h1('Example')
    ,textInput('txt','','Text')
    ,actionButton('add','add')
    ,verbatimTextOutput('list')
  )

  ,server=function(input,output,session) {
    myValues <- reactiveValues()
    observe({
      if(input$add > 0){
        myValues$dList <- c(isolate(myValues$dList), isolate(input$txt))
      }
    })
    output$list<-renderPrint({
      myValues$dList
    })
  }

))

【讨论】:

  • 请注意,它确实应该是c(isolate(myValues$dList), isolate(input$txt)),以便在您输入新文本输入时,在点击按钮之前,列表不会自动附加。
猜你喜欢
  • 1970-01-01
  • 2020-04-05
  • 2018-05-10
  • 2021-01-23
  • 1970-01-01
  • 2016-01-31
  • 2022-01-17
  • 2021-12-17
  • 2018-11-27
相关资源
最近更新 更多