一個簡單的方法來複制這個問題:R對於循環變量,閃亮的不良依賴項。有沒有辦法強制評估?
shinyApp(
ui = fluidPage(
textOutput("helloJohn"),
br(),
textOutput("helloJacob"),
br(),
textOutput("helloJoe")),
server = function(session, input, output) {
for(name in c("John", "Jacob", "Joe")) {
output[[paste0("hello", name)]] <- renderText({paste0("hello ", name, "!")})
}
})
這段代碼的目的是使文本「Hello約翰」,「你好雅各布」,「你好喬」顯示在頁面上,而無需重複使用renderText
大塊。然而,儘管它似乎是輸出名都設置正確,所呈現的時候似乎name
被設置在for循環的最後一個值,從而導致所有的名稱爲「喬」:
我認爲這是由於Shiny設置依賴關係圖的方式,但name
不是一個無功變量,它在初始化過程中可用。有沒有一種方法可以強制在for循環中對name
進行評估,類似於Haskell中的Bang Patterns?
在更新輸出之前試着'強制(名稱)'循環內部 – FlorianGD