我遇到闪亮包困难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