如何在R Shiny Conductor Tour中嵌入Javascript代码?
在Shiny应用的Conductor导览中使用JavaScript的示例
Conductor包的官方文档仅说明onComplete、onCancel等回调参数可填入JavaScript代码,但未提供具体示例,这让对JS了解较少的开发者难以上手。
以下示例展示了如何编写JS代码来更新指定的input$变量值,该值可被Shiny中的observeEvent()检测到。示例中我们将input$my_tour_state更新为true或false,同样也支持传入数字或字符类型的值,以此实现通过Conductor导览步骤控制输入组件的效果。
library(shiny) library(conductor) ui <- fluidPage( use_conductor(), # 创建启动导览的按钮 actionButton(inputId = "ui_start_tour", label = "开始导览"), # 输出导览状态 verbatimTextOutput(outputId = "tour_status") ) server <- function(input, output, session) { # 创建Conductor导览 conductor <- Conductor$ new()$ step( id = "step1", title = "欢迎", text = "这是第一步。", # 用于更新reactiveVal `tour_state`的JavaScript代码 onShow = "Shiny.setInputValue('my_tour_state', true, {priority: 'event'})" )$ step( id = "step2", title = "第二步", text = "这是第二步。", onShow = "Shiny.setInputValue('my_tour_state', false, {priority: 'event'})" ) # 点击按钮时启动导览 observeEvent(eventExpr = input$ui_start_tour, handlerExpr = { conductor$init()$start() }) # 响应式显示导览状态 output$tour_status <- renderText({ paste("导览状态:", input$my_tour_state) }) } shinyApp(ui, server)
内容的提问来源于stack exchange,提问作者Nevil
相关产品推荐
相关产品推荐

