Wenn ein dynamisches Eingabeelement zur Benutzeroberfläche hinzugefügt wird, löst es sein bereits vorhandenes observeEvent aus. Beachten Sie insbesondere das folgende Beispiel, in dem der TextInput beim ersten Laden der serverseitigen Funktion dynamisch hinzugefügt wird. Dann wird das observeEvent ausgelöst, wenn es gerendert wird.So vermeiden Sie das Ausführen von initial observeEvent der dynamisch hinzugefügten Eingabe
Gibt es einen Weg, in dem wir diese Auslösung beim Hinzufügen des Eingangselementes generisch vermeiden können, insbesondere möchte ich Testeingang 1 und Testeingang 2 zwei auf ähnliche Weise feuern, das heißt, nicht bei der Initiierung.
Die UI.R Datei
library(shiny)
# Define UI for application that draws a histogram
shinyUI(fluidPage(
fluidRow(
uiOutput("my_output"),
textInput(inputId = "test2", label = "test2", value = "start value"))
))
Die server.R Datei
library(shiny)
first.load <- TRUE
shinyServer(function(input, output) {
if(first.load){
output$my_output <- renderUI({
textInput(inputId = "test", label = "test", value = NULL)
})
}
observeEvent(input$test2,{
browser()
}, ignoreInit = T)
observeEvent(input$test, {
browser()
}, ignoreInit = T)
})
Hatte das gleiche Problem einmal, mit einigen Javascript, die die Eingabe erstellt. – agenis