Como criar evento On load ou evento padrão em brilhante?
Eu sou novo no brilhante, bem como no stackoverflow, e estou procurando por ajuda com um problema no qual estou atualmente preso. Estou tentando criar um aplicativo brilhante que coleta algumas entradas do usuário e cria visualização com base nas entradas no clique de um botão. Atualmente, isso funciona bem, mas uma das principais perguntas é que, quando o aplicativo for carregado pela primeira vez, ele terá uma visualização preparada com base nas entradas padrão.
Estou colando um código de exemplo, que pode explicar o problema que estou enfrentando:
UI.R #loading shiny
library(shiny)
ui<-shinyUI(fluidPage(
titlePanel("Iris Dataset"),
sidebarLayout(
sidebarPanel(
radioButtons("x", "Select X-axis:",
list("Sepal.Length"='a', "Sepal.Width"='b', "Petal.Length"='c', "Petal.Width"='d')),
radioButtons("y", "Select Y-axis:",
list("Sepal.Length"='e', "Sepal.Width"='f', "Petal.Length"='g', "Petal.Width"='h')),
actionButton("action","Submit")
),
mainPanel(
plotOutput("distPlot")
)
)
))
#SERVER.R
library(shiny)
#loading shiny
server<-shinyServer(function(input, output) {
observeEvent(input$action,{
output$distPlot <- renderPlot({if(input$x=='a'){i<-1}
if(input$x=='b'){i<-2}
if(input$x=='c'){i<-3}
if(input$x=='d'){i<-4}
if(input$y=='e'){j<-1}
if(input$y=='f'){j<-2}
if(input$y=='g'){j<-3}
if(input$y=='h'){j<-4}
s <- iris[, i]
k <- iris[, j]
plot(s,k)
})
})
})
shinyApp(ui<-ui, server<-server)
Agora, se você executar este aplicativo, verá que as entradas são selecionadas na primeira tela após o carregamento (o que é desejado), mas a visualização aparece somente depois de clicar no botão "Enviar", devido ao evento do observador.No aplicativo real, há cálculos sendo realizados após capturar as entradas com o clique do botão. Portanto, o cálculo é acionado apenas quando o actionButton é clicado
Existe uma maneira, ainda podemos manter o botão "Enviar" e seu evento de observação, mas acionar automaticamente a visualização ou a ação executada no evento de observação no início, ou seja, quando o aplicativo carregar pela primeira vez.