我遇到閃亮包困難R.閃亮 - 問題renderUI()的反應
我想了解server.R爲什麼‘#1選項’不工作,但評論「#選項2「確實有效。在「#Option 1」處於激活狀態時,請嘗試輸入隨機字符串並按下按鈕。第一次它將文本框中的值替換爲「abc」,但所有下一次都不會。在我的理解中,val()已經依賴於輸入$ change,因此每次按下按鈕時都必須重新執行,此外,「#Option 2」被封裝到isolate()中,所以它不會添加任何反應性。
使用「#選項1」時,實際上值似乎部分變爲「abc」。在Google Chrome的檢測元素打開後,您可以看到「#Option 2」每次按下按鈕時都會更改值,「#Option 1」也會將值更改爲「abc」,但只有在按鈕第一次被按下。
下面是代碼:
server.R
require(shiny)
shinyServer(function(input, output) {
val <- reactive({
if(input$change>0) {
# Option 1
'abc'
# # Option 2
# isolate({
# paste('abc',input$txt,"")
# })
} else {
''
}
})
output$textbox <- renderUI({
textInput("txt","Text",val())
})
})
ui.R
require(shiny)
require(shinyIncubator)
shinyUI(pageWithSidebar(
headerPanel('Test'),
sidebarPanel(
uiOutput("textbox"),
actionButton("change", "Change")
),
mainPanel(
)
))
謝謝!我通過在文本輸入值的末尾添加一個空格來解決問題,並且如果輸入值的末尾有空格,則刪除空格,因此新值將始終與前一個值不同。無論如何,我修剪所有傳入的字符串 – user1603038