Estoy buscando ayuda para observar cuando se hace clic en un botón en la barra de navegación de una aplicación Shiny con navbarPage .
He incluido un botón justo en la barra de navegación Shiny con algo de javascript. He proporcionado una identificación para la etiqueta del botón ('id = btn_show') y he introducido un evento de observación para escuchar 'input$btn_show'. Sin embargo, el botón no se está observando ... ¿qué se requiere, por favor? Gracias
library(shiny) library(shinyjs) ui <- navbarPage( title = 'Button Up', tabPanel('Tab 1'), tabPanel('Tab 1') , tags$script(HTML( "var header = $('.navbar> .container-fluid'); header.append('<div style=\"float:right; style=\"valign:middle;\"><button id = \"btn_show\">Show Controls</button></div>'); console.log(header)")) ) server <- function(input, output, session) { observeEvent(input$btn_show,{ print('The button was observed') }) } shinyApp(ui, server)Agregue el atributo onclick a su botón:
<button id=\"btn_show\" onclick=\"Shiny.setInputValue(\\\"btn_show\\\", true, {priority: \\\"event\\\"})\">Show Controls</button>No estoy seguro de que las barras invertidas triples funcionen. Si no, define una función:
function f(){ Shiny.setInputValue(\"btn_show\", true, {priority: \"event\"}) } Luego onclick = \"f()\" .
Funciona así:
tags$script(HTML( "var header = $('.navbar> .container-fluid'); var f = function(){Shiny.setInputValue(\"btn_show\", true, {priority: \"event\"})}; header.append('<div style=\"float:right; valign:middle;\"><button id=\"btn_show\" onclick=\"f()\">Show Controls</button></div>'); console.log(header)"))