这是一个非常奇怪的行为,在Shiny htmlOutput中使用循环。我一直在努力做的事情非常简单,就是从Shiny htmlOuput执行一个Javascript代码(console.log)并将循环编号输出到控制台。请参见下面的代码:for循环闪烁htmlOutput不按顺序执行
library(shiny)
ui
actionButton("goButton", "Go!"),
mainPanel(htmlOutput("result"))
)
server
observeEvent(input$goButton,{
output$result
html_output_list
htmlname
htmlOutput(htmlname)
})
# Convert the list to a tagList - this is necessary for the list of items
# to display properly.
do.call(tagList, html_output_list)
})
lapply(1:14, function(i){
htmlname
output[[htmlname]]
paste('
i,
';console.log(number);')
})
})
})
}
shinyApp(ui = ui, server = server)
点击Go按钮,结果应该是从1到14的有序序列号(因为我从循环1到14的数字),但实际结果是14.1, 2,...,13。尝试从1:20的范围我会产生一个序列为(14,15,16,17,18,1,19,2,3,4,5,6,7,8,20,9,10,11 ,12,13)。任何人都可以解释这里发生了什么?它如何不遵循命令?显然这不是一个随机顺序。
2016-11-11
uPhone