gpt4 book ai didi

r - Shiny - renderUI() 的 react 性问题

转载 作者:行者123 更新时间:2023-12-02 20:20:19 24 4
gpt4 key购买 nike

我在使用 R 中的 Shiny 包时遇到困难。

我试图理解为什么 server.R 中的“# Option 1”不起作用,但注释“# Option 2”却起作用。当“# Option 1”处于事件状态时,尝试输入随机字符串并按下按钮。第一次它用“abc”替换文本框中的值,但接下来的所有时间都不会。

据我了解,val()已经依赖于input$change,因此每次按下按钮时它都必须重新执行,而且“#Option 2”被包装到isolate()中,因此它不会添加任何内容 react 性。

当使用“#Option 1”时,实际上该值似乎部分更改为“abc”。打开 Google Chrome 的检查元素,您可以看到“# Option 2”每次按下按钮时都会更改值,“# Option 1”也会将值更改为“abc”,但仅当按钮按下时屏幕才会更新第一次按下。

这是代码:

服务器.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(

)
))

最佳答案

在这里查看我的回复:

https://groups.google.com/d/msg/shiny-discuss/PLHauRlFw3k/AnoD7NusvDIJ

要点是服务器不断向 textbox 输出发送完全相同的值,因此客户端足够“聪明”来忽略它。

关于r - Shiny - renderUI() 的 react 性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com