2016-07-04 35 views
-1

我只是新的闪亮,我有问题。我有一个事件反应和里面的停止功能。当我运行我的代码(没有复选框,并点击按钮),闪亮的工作很好。但在控制台中显示错误消息“eventReactiveHandler”。你有解决我的问题吗?我想在我的控制台没有错误信息。 我没有想到解决的办法是R闪亮 - 停止()eventReactive在控制台中没有错误信息

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..." 
     )) 
     ) 

     }) 

     } 
) 

回答

0

我不会建议抑制的错误消息,因为在那里等你,我建议你看看validateneedshiny,你可以去阅读validation文章

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 


     }) 

    } 
) 
+0

谢谢你,但与回报(NULL)在我的真实代码中不起作用(检查编辑)。当没有复选框并单击按钮时,将显示错误“不允许单个括号索引反应值对象”。 – lukman

+0

为什么添加'var.x << - NULL'?根据我的另一个例子?我添加了更改 –

+0

不,我有我的bsmodal用于验证var.x <-NULL时,检查我的代码(新编辑) – lukman

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..." 
     )) 
     ) 

     }) 

    } 
)