0

我有一个简单的闪亮应用程序,我需要在其中上传 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)
4

1 回答 1

1

只是第 49 行的一个小错字。

这一行
if(is.null(input$inFile))

应该是
if(is.null(rv$data))

于 2020-04-21T20:59:48.753 回答