Проверка ввода файла не работает, когда ввод файла сбрасывается actionButton - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть простое блестящее приложение, в котором мне нужно загрузить 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)

1 Ответ

1 голос
/ 21 апреля 2020

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...