【问题标题】:Using observeEvent to render a table in golem appgolem app中使用observeEvent渲染表格
【发布时间】:2021-12-31 11:45:55
【问题描述】:

我是 golem 包的新手,太新了,以至于我正在为基本的闪亮操作而苦苦挣扎。此时,我无法根据操作按钮触发的 observeEvent 呈现表格。 当提供指向 google 学者页面的链接时,该模块应该抓取任何研究人员的共同作者。当我单击按钮时没有任何反应。你能帮我弄清楚我做错了什么吗?


#' seleciona_autores UI Function
#'
#' @description A shiny Module.
#'
#' @param id,input,output,session Internal parameters for {shiny}.
#'
#' @noRd 
#'
#' @importFrom shiny NS tagList 
mod_seleciona_autores_ui <- function(id){
  ns <- NS(id)
  tagList(
    shiny::textInput(
      'link',
      label = 'Link para o google scholar',
      value = ''
    ),
    shiny::actionButton(
      'pesquisar_autores',
      'Pesquisar autores!'
    ),
    tableOutput(ns('lista_parceiros'))
 
  )
}
    
#' seleciona_autores Server Functions
#'
#' @noRd 
mod_seleciona_autores_server <- function(id){
  moduleServer( id, function(input, output, session){
    ns <- session$ns
    
    observeEvent(input$pesquisar_autores, {
      forecasts <- rvest::read_html(input$link) %>%
        rvest::html_nodes(".gsc_a_tr") %>%
        rvest::html_nodes(".gsc_a_t") %>%
        rvest::html_element("div") %>%
        rvest::html_text()
      
      
      
      parceiros <- data.frame(table(trimws(unlist(strsplit(forecasts, ",")))))
      
      parceiros <- parceiros[parceiros$Var1 != '...',]
      
      parceiros <- parceiros[order(parceiros$Freq, decreasing = TRUE),]
      
      colnames(parceiros) <- c('Autor', 'Quantidade de trabalhos')
      
      output$lista_parceiros <- renderTable({
        parceiros
      })
    })
 
  })
}

【问题讨论】:

  • 您在mod_seleciona_autores_ui 的前两个输入中缺少ns()
  • @YBS,谢谢!效果很好!

标签: r shiny golem


【解决方案1】:

正如 YBS 所说,这是一个缺失的ns()。 这是“我的模块不显示”的第一个答案:)

FWIW 我们正在努力在{golem} 中检查这一点,这样您就不会忘记添加它们。

科林

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多