如何在 UI 中读取文本输入.R 在全局中处理具有此值的查询.R 并在服务器中显示.R 使用闪亮



我在Shiny R中有一个应用程序。 在用户界面上。R 我读了一个文本输入,在全局。R 我使用 sqldf(( 处理查询。

如何读取 ui 的文本输入。R in Global.R ?

用户界面。R

shinyUI(fluidPage(
  #books <<- list("Descritores FOUSP" = "descritor"),
  # Application title
  titlePanel("CRAI"),
  headerPanel(title="Pesquisa de Descritores"),
  sidebarLayout(
    sidebarPanel(
      h5('Qual é o tema da sua pesquisa ?'),
      textInput("descritor", "Digite um descritor",""),
      submitButton('Pesquisar')
)
)

这个文本输入名称为"描述者",我想在全局查询中使用。R

我试过这个:

output$desc <- renderText({
    paste(input$descritor)})
 sql <- sprintf("SELECT * FROM csv WHERE Assuntos = '%s'", output$desc)

但我无法在global.R上阅读"描述者"。

文件全局。R 不是 Shiny 应用的反应式部分的一部分。只有在用户界面和服务器函数中定义的组件才能用作响应式表达式。全球一切。R 在应用程序启动时执行一次,但不再执行。

因此,如果你想执行你的sql语句,你需要在你的服务器中完成以下操作:

sql <- reactive({
  sprintf("SELECT * FROM csv WHERE Assuntos = '%s'", output$desc)
})
mydata <- reactive({
  someSQLfunction(sql())
})

通过使您的SQL语句成为响应式表达式(函数reactive()这样做(,它将在每次更新output$desc时更新。此响应式表达式的行为类似于函数(!因此,下一条语句中的调用sql()将返回更新的 SQL 语句。然后,您可以使用您选择的函数(我称之为someSQLfunction(来处理语句。

你希望此语句的结果也成为反应式表达式,以便可以使用它来创建应用的相关输出。

相关内容

  • 没有找到相关文章

最新更新