2016-03-30 25 views
-1

Ben Parlak uygulamada araziler sayısını dinamik oluştururken ben aracılığıyla döngü istiyorum araziler bir dizi yarattı.Yöntem Render Fonksiyon

server = function(input, output, session) { 

    <Lots of other code> 

    plotlist = generate_list_of_plots() 
    for(i in seq_len(length(plot list))) { 
     plotname = sprintf('ui_plot_%i', i) 
     output[[plotname]] = renderPlot(plotlist[[i]]) 
    } 

    <Lots of other code> 

} 

Maalesef bu listedeki son arsa üretildi korelasyon plotOutput nesnelerin her biri için tekrarlanır gibi ben istiyorum gibi işlemiyor: Sunucu işlevinde ben aşağıdaki yapıya sahip işlevi gözlemlemek var ayrı bir kod bloğunda. Bu davranış araziler görünür yapılana kadar kullanıcı bir sekme tıklar ve i indeksleme değişken nihai pozisyonuna ileri olmuştur ve renderPlot fonksiyonudur her zaman statik olduğunda renderPlot ifadeler adında olmadığı gerçeğine ilişkili olabileceğine inanıyoruz yürütülür ve bu yüzden aynı grafiği alırım.

1: Bu sorunun gerçek nedeni midir? 2: Eğer durum bu ise, bu tür bir durumu ele almak doğru yolu nedir? Ben soruna bir çözüm bulmak mümkün oldu sanki

cevap

0

görünüyor. Benim varsayım doğruydu cevap local fonksiyonudur. Çözüm, this gönderisinde bulundu.

server = function(input, output, session) { 

    <Lots of other code> 

    plotlist = generate_list_of_plots() 
    for(i in seq_len(length(plot list))) { 
     local({ 
      my_i = i 
      plotname = sprintf('ui_plot_%i', my_i) 
      output[[plotname]] = renderPlot(plotlist[[my_i]]) 
     }) 
    } 

    <Lots of other code> 

} 
:

düzeltilmiş kod aşağıdaki olurdu