Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R更新文本输入值时出现延迟_R_Shiny - Fatal编程技术网

R更新文本输入值时出现延迟

R更新文本输入值时出现延迟,r,shiny,R,Shiny,下面是一个带有textInput和actionButton的简单R Shining应用程序示例,单击按钮后,应该将文本值设置为NULL并打印NULL值,但是我注意到,在单击submit按钮后,它仍然打印textInput中输入的值。有人能解释一下为什么在更新textInput值时会出现这种延迟吗 library(shiny) ui <- fluidPage( textInput("text", "Test"), actionButt

下面是一个带有textInput和actionButton的简单R Shining应用程序示例,单击按钮后,应该将文本值设置为NULL并打印NULL值,但是我注意到,在单击submit按钮后,它仍然打印textInput中输入的值。有人能解释一下为什么在更新textInput值时会出现这种延迟吗

library(shiny)

ui <- fluidPage(
    textInput("text", "Test"),
    actionButton("Submit","Submit")
  
)

server <- function(input, output, session) {
  observeEvent(input$Submit,{
      updateTextInput(session,"text", value = " ")
      print(input$text)
  })
}

shinyApp(ui, server)
库(闪亮)

ui此行为的原因是updateTextInput(以及所有更新*输入函数)不会更新服务器函数中的
Input
对象。相反,它会向客户端(浏览器)发送一条消息以更改文本输入字段。当浏览器中的文本输入字段更新时,浏览器会向服务器发回一个信号,表明
input$text
已更改。但在此之前,
observeEvent
块内的代码执行仍在继续,因此当执行
print(input$text)
时,值仍然是“hello”。

感谢您的回答Bobbel,这解释了更新输入函数的行为,并且有意义。但是,是否可以更新服务器上的文本值,该值将依次显示在浏览器中,以便下一行中的print语句显示来自服务器的更新值。这取决于实际应用程序的复杂程度。一种解决方案是将要打印的信息存储在
reactiveValues
对象()中,而不是使用
input