I have a WebApp that have some renderUI({})
... and some of them depend on the input of another.
This makes that, briefly, a red error in the webpage appear when I select some options. Because the if()
clause of some renderUI({})
depend on the input of a selectizer. The error says something like "The length of the argument is 0" (As the if()
depends on a TRUE/FALSE
, but in that exact moment it is not TRUE nor FALSE). After a second or so, it works good.
This could be done via a Sys.sleep()
after the first if()
but I don't know if it's the best option.
Thank you.
Edit - Reproducible code:
ui.R
radioButtons(
inputId="select",
label="Some selectizer",
choices=list(
"Yes",
"No"
),
selected="No",
inline=TRUE
),
uiOutput("select1"),
uiOutput("option2")
server.R
output$select1 <- renderUI({
if (input$select == "No")
return()
else radioButtons(
inputId="select1",
label="Some additional selector",
choices=list(
"Yes",
"No"
),
selected="No",
inline=TRUE)
})
output$option2 <- renderUI({
if (input$select == "Yes"){
if (input$select1 == "Yes"){
textInput("option2", "Some textInput: "),
}
else return()
}
})
some reproducible code would allow me to give you some example code, but in the absence of that...
wrap what you currently have in another
if()
, checking for length = 0 (or just&&
it, with theNULL
check first), and display your favorite placeholder message.