我是 shinyanimate 包的新手。它在模块外工作得很好,但是在模块内 * 它不工作(但是没有错误也没有警告)。我很确定它与session和ns()有关,但是我不能指出问题所在。
这是我的最小示例,有两个按钮:“button”位于应用程序中,“button_mod”位于模块中。
if (interactive()) {
mod_test_ui <- function(id){
ns <- NS(id)
tagList(actionButton(ns("button_mod"), label = "button_mod"))
}
mod_test_server <- function(id){
moduleServer( id, function(input, output, session){
ns <- session$ns
observeEvent(input$button_mod,{
shinyanimate::startAnim(session, id='button_mod', 'bounce')
})
})
}
shinyApp(
ui = basicPage(
shinyanimate::withAnim(),
mod_test_ui("test"),
actionButton("button", label = "button")
),
server = function(input, output, session) {
mod_test_server("test")
observeEvent(input$button,{
shinyanimate::startAnim(session, id='button', 'bounce')
})
}
)
}
字符串
我已经尝试将“session”传递给模块。
我希望这两个按钮有相同的行为和快乐的反弹时,点击…任何人都有一个建议?谢谢
1条答案
按热度按时间63lcw9qa1#
好吧,没关系,我刚刚有一个顿悟。startAnim在一个模块中需要一个像“mymodulename-myid”这样的id,而不仅仅是“myid”。将“button_mod”按钮的id改为“test-button_mod”就可以了。
新的mod_test_server的最小示例:
字符串
不管怎样..