Ниже у меня блестящее приложение, в котором отображаются 2 цифры c. Приложение работает нормально, так как, когда сумма не 40, отображается сообщение об ошибке. Что раздражает, и я хотел бы избавиться от этого сообщения об ошибке
Warning: Error in if: argument is of length zero
, которое появляется в консоли r, когда я запускаю приложение в первый раз. Я знаю, что это происходит от line 38
и связано со значениями NULL
в начале. Интересно, что это сообщение об ошибке не отображается, когда я не использую renderUI()
для 2 цифр c входов. Но мне нужно, чтобы они были такими в моем случае.
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
#This hides the temporary warning messages while the plots are being created
tags$style(type="text/css",
".shiny-output-error { visibility: hidden; }",
".shiny-output-error:before { visibility: hidden; }"
),
uiOutput("factors_weight_one_two"),
htmlOutput('weight_message')
),
mainPanel(
)
)
)
server <- function(input, output) {
output$factors_weight_one_two <- renderUI({
fluidRow(
column(6, numericInput(
"factors_weight_one",
"Factor 1", 20,
min = 1, max = 100,
width = "90%")),
column(6, numericInput(
"factors_weight_two",
"Factor 2", 20,
min = 1, max = 100,
width = "90%"))
)
})
output$weight_message <- renderText({
if(!is.null(as.numeric(input$factors_weight_one) + as.numeric(input$factors_weight_two) ) & as.numeric(input$factors_weight_one) + as.numeric(input$factors_weight_two) != 40){
sprintf('<font color="%s">%s</font>', 'red', "Your weights don't sum to 40")
} else {
sprintf('<font color="%s">%s</font>', 'red', "")
}
})
}
shinyApp(ui, server)