【发布时间】:2019-10-29 13:09:51
【问题描述】:
安装新版闪亮(1.4.0)包后,我遇到一个奇怪的错误消息
> Warning: Error in writeImpl: Text to be written must be a length-one
> character vector [No stack trace available]
我真的不明白发生了什么变化?以及如何解决这个问题?
任何想法将不胜感激!
Trace 如下所示:
13: execCallbacks(timeoutSecs, all, loop$id)
12: force(expr)
11: with_loop(loop, invisible(execCallbacks(timeoutSecs, all, loop$id)))
10: run_now(timeoutMs/1000, all = FALSE)
9: service(timeout)
8: serviceApp()
7: ..stacktracefloor..(serviceApp())
6: withCallingHandlers(expr, error = doCaptureStack)
5: domain$wrapSync(expr)
4: promises::with_promise_domain(createStackTracePromiseDomain(),
expr)
3: captureStackTraces({
while (!.globals$stopped) {
..stacktracefloor..(serviceApp())
}
})
2: ..stacktraceoff..(captureStackTraces({
while (!.globals$stopped) {
..stacktracefloor..(serviceApp())
}
}))
1: runApp("Projects/Bomboleo")
No traceback available
【问题讨论】:
-
此错误发生在
htmltools::WSTextWriter中(请参阅here 和 CTRL+F 以查找“writeImpl”)。当您在任何 UI 函数中显示原始文本时,此函数负责正确地将文本写入您的显示器。当writeImpl()函数接收多个字符串(又名character()向量的元素)时,它会引发上述错误。要更正此问题,请确保永远不要向 Shiny UI 函数提供两个字符串,该函数只要求一个字符参数。 -
谢谢。参见github.com/rstudio/htmltools #147: WSTextWriter does not handle multiple character values。我做了
tags$tr(HTML(paste0(myvar,collapse=""))) -
我遇到了类似的问题。原来我有一个标准的 Shiny
textInput控件,其中有多个字符串作为默认 (value) 参数。 -
类似问题:
tags$div(class=c("a","b"),"a")。应该是tags$div(class="a b","a")