R shiny - 在eventReactive中停止(),在控制台中没有错误消息

时间:2016-07-04 14:47:51

标签: r shiny

我只是Shiny的新手,我有问题。我有一个事件反应和里面的停止功能。当我运行我的代码(没有复选框并单击按钮)时,闪亮的效果很好。但在控制台中显示错误消息" eventReactiveHandler"。你有解决我的问题的方法吗?我想在我的控制台中没有错误消息。 我不希望解决方案是

opt <- options(show.error.messages=FALSE)
on.exit(options(opt)) 

因为错误不会显示在我的所有代码中,我只想特别注意这个错误。 谢谢......这是代码......

rm(list = ls())
library(shiny)
library(shinyBS)
var.x<-reactiveValues()
shinyApp(
  ui =
    fluidPage(
      sidebarLayout(
        sidebarPanel(
          checkboxGroupInput("indepvar","Independent Variable",
                             choices = c("1"=1,"2"=2)),
          actionButton("tabBut", "View Table")
        ),

        mainPanel(
          uiOutput("coba"),
          uiOutput("popup4")
        )
      )
    ),
  server =
    function(input, output, session) {

      output$coba <- renderUI({
        gendata()
        indep<-NULL
        for(i in 1:length(var.x)){
          indep <- paste(indep,var.x[i],",")
        }
        list(
          renderText(indep)
        )
      })

      gendata<- eventReactive(input$tabBut,{

      if(is.null(input$indepvar)){
        stop()
      }

          var.x<<- input$indepvar  


      })

      output$popup4 <- renderUI({

        if(!is.null(input$indepvar))return()

        list(
          bsModal("modalExample4", "Peringatan", "tabBut", size = "small",wellPanel(
            "Anda belum memilih independent variabel..."
          ))
        )

      })

        }
)

2 个答案:

答案 0 :(得分:0)

我不建议您删除错误消息,因为有针对您的内容,我建议您查看validate中的needshiny,您可以阅读{ {3}}文章

发给quickfix你只能返回NULL

rm(list = ls())
library(shiny)
library(shinyBS)
var.x<-reactiveValues()
shinyApp(
  ui =
    fluidPage(
      sidebarLayout(
        sidebarPanel(
          checkboxGroupInput("indepvar","Independent Variable",
                             choices = c("1"=1,"2"=2)),
          actionButton("tabBut", "View Table")
        ),

        mainPanel(
          uiOutput("coba")
        )
      )
    ),
  server =
    function(input, output, session) {

      output$coba <- renderUI({
        gendata()
        indep<-NULL
        for(i in 1:length(var.x)){
          indep <- paste(indep,var.x[i],",")
        }
        list(
          renderText(indep)
        )
      })

      gendata<- eventReactive(input$tabBut,{

        if(is.null(input$indepvar)){
          var.x <<- NULL
          return(NULL)
          stop()
        }

        var.x<<- input$indepvar  


      })

    }
)

答案 1 :(得分:0)

您需要根据以下代码执行两项操作:

  • 确保在没有选择独立变量时gendata不返回任何内容(参见第37-40行)。这将停止原始错误消息
  • 确保output$coba没有价值时不评估gendata(见第25行)

希望这有帮助, 约翰

rm(list = ls())
library(shiny)
library(shinyBS)
var.x<-reactiveValues()
shinyApp(
  ui =
    fluidPage(
      sidebarLayout(
        sidebarPanel(
          checkboxGroupInput("indepvar","Independent Variable",
                             choices = c("1"=1,"2"=2)),
          actionButton("tabBut", "View Table")
        ),

        mainPanel(
          uiOutput("coba"),
          uiOutput("popup4")
        )
      )
    ),
  server =
    function(input, output, session) {

      output$coba <- renderUI({
        req(gendata())
        indep<-NULL
        for(i in 1:length(var.x)){
          indep <- paste(indep,var.x[i],",")
        }
        list(
          renderText(indep)
        )
      })

      gendata<- eventReactive(input$tabBut,{

        if(is.null(input$indepvar)) {
          var.x <<- NULL
          return()
        }

        var.x<<- input$indepvar  

      })

      output$popup4 <- renderUI({

        if(!is.null(input$indepvar))return()

        list(
          bsModal("modalExample4", "Peringatan", "tabBut", size = "small",wellPanel(
            "Anda belum memilih independent variabel..."
          ))
        )

      })

    }
)