添加到Shiny列表 [英] Add to a list in Shiny

查看:79
本文介绍了添加到Shiny列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to define a list that a user may update through doing certain actions. I did this:

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

但是列表会无限次更新,有人知道有什么方法可以使这项工作成功吗?

But the list updates infinitely many times, does anyone know a way to make this work?

推荐答案

您可以使用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
    })
  }

))

这篇关于添加到Shiny列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆