I'm trying to create a Shiny app that includes a submit button for inputs and a checkbox for hiding/showing the results. My issue is that ticking or unticking the hide/show checkbox has no effect unless I hit the submit button again.
How can I show results as soon as the user checks the checkbox and hide it on uncheck without any dependency on submit button? It's similar to this question, but I'm using the shinyjs package instead.
Here is some sample code to illustrate the issue:
UI.R
ui <- shinyUI(fluidPage(
# Initiate shinyjs package
useShinyjs(),
# Select layout type
sidebarLayout(
# Sidebar content
sidebarPanel(
# Input phrase1
textInput("phrase1", "Enter a word or phrase here", "It’s not rocket"),
# Input phrase2
textInput("phrase2", "Enter a word or phrase here", "science"),
# Submit button
submitButton("Paste phrases")
),
# Main panel content
mainPanel(
# Checkbox to show/hide results
checkboxInput("checkbox", "Show results?", TRUE),
# Results
textOutput("full_phrase")
)
)
))
Server.R
server <- shinyServer(function(input, output) {
observe(toggle("full_phrase", condition=(input$checkbox==T)))
output$full_phrase <- renderText({paste(input$phrase1, input$phrase2)})
})
Any help greatly appreciated!
Your
submitButton
control his halting all reactivity until it is clicked. If you want any elements of your UI to be reactive independent of your button, you should useactionButton
instead, and use an event observer for the actions that you want performed when the button is clicked.