我有反应输出:
{{ textOutput("fatalError") }}
它生成标签:
<div id="fatalError" class="shiny-text-output shiny-bound-output"></div>
我有这样的代码:
.events$fatalError <- list(
errorMessage = "Unknow Error",
index = 0L
)
makeReactiveBinding("fatalError", env = .events)
我正在触发这样的事件:
fatalError <- function(errorMessage) {
# the error is shown, the class fatal-error indicate that tag should be visible
addClass(selector = "body", class = "fatal-error")
.events$fatalError <- list(
errorMessage = errorMessage,
index = .events$fatalError$index + 1L
)
}
但fatalError输出没有更新,我试过这个(在server.R中):
observeEvent(.events$fatalError, {
# the message is printed to console
print(.events$fatalError$errorMessage)
output$fatalError <- renderText(.events$fatalError$errorMessage)
}, ignoreInit = TRUE)
还有这个:
output$fatalError <- renderText({
.events$fatalError$errorMessage
})
但标记仍然为空,我还尝试在页面上显示output$fatalError
并且结果相同时触发事件
答案 0 :(得分:0)
发现问题,输出元素在渲染时无法隐藏,否则它将无法工作(它可能是优化“功能”),也许是因为addClass在下一行执行之前不等待类添加所以renderText没有可见的输出。