0

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


#' 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
      })
    })
 
  })
}
4

1 回答 1

2

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

FWIW,我们正在努力寻找一种方法来检查内部{golem},这样您就不会忘记添加它们。

科林

于 2021-11-25T09:01:09.480 回答