Проверка ввода файла не работает, когда ввод файла сбрасывается с помощью actionButton

У меня есть простое блестящее приложение, в которое мне нужно загрузить CSV, а затем я смогу сбросить его, нажав кнопку действия. Если файла нет, должно появиться сообщение об ошибке. Проблема в том, что это сообщение об ошибке не отображается после нажатия кнопки сброса.

library(shiny)
library(shinyjs)
library(tidyverse)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
  useShinyjs(),
  fileInput('inFile', 'Choose 1st file'),
  tags$hr(),
  actionButton('reset', 'Reset')
    ),
  mainPanel(
    textOutput("choose")
  )
)
)

server <- function(input, output, session) {

  rv <- reactiveValues(
    data = NULL,
    clear = FALSE
  )
  ########1st
  observe({
    req(input$inFile)
    req(!rv$clear)

      rv$data <- read.csv(input$inFile$datapath,header = T)



  })

  observeEvent(input$inFile, {
    rv$clear <- FALSE
  }, priority = 1000)

  observeEvent(input$reset, {
    rv$data <- NULL
    rv$clear <- TRUE
    reset('inFile')
  }, priority = 1000)



  output$choose <- reactive({
    if(is.null(input$inFile))
    {
      "You must upload 1st csv at least"
    }
    else
    {
      "Now we can process the data!"
    }
  })
}

shinyApp(ui, server)

person firmo23    schedule 21.04.2020    source источник


Ответы (1)


Небольшая опечатка в строке 49.

Эта строка
if(is.null(input$inFile))

должна быть
if(is.null(rv$data))

person Ash    schedule 21.04.2020
comment
возможно, вы могли бы помочь с этим stackoverflow.com/questions/61349868/ - person firmo23; 22.04.2020