我正在尝试调试将样板图与一些用户输入结合在一起的函数,以创建一个样板图。
我发现一个非常令人费解和莫名其妙的举动,使我对如何补救一无所知。
当我使用调试器进入函数并使用Enter键或“ n”向前并运行代码时,然后在控制台上输入@page "/"
<ChildComponent>child content</ChildComponent>
,得到以下图形:
Running while debugging
我尝试使用var data = context.Table.ToList();
,但结果相同。
但是,如果我仅在调试模式下突出显示相同的代码并运行它,然后在控制台上输入.p
,就会得到以下图形:
Running from console
环境和输入是相同的,但是由于某种原因,当我手动运行图形时会呈现图形,而当我使用调试器运行图形时却不会呈现图形。有谁知道为什么会发生这种行为以及如何纠正它? 如果代码看起来似乎只是出于某种原因(除了代码恰好位于函数内部而不是直接运行),则无法调试呈现空白图形的函数。
任何见识将不胜感激!
这里是一个代表:
plotly_build(.p)
我正在运行RStudio 1.3.959。 这是我的SessionInfo:
.p
答案 0 :(得分:1)
好像我将参数传递到plot_ly
的过程过于复杂。 x
和y
可以按原样传递,并且公式格式将保留。 rlang::enexpr
正在将外部环境附加到x
公式,并使其在数据之外的环境中搜索FriendlyProjectName,从而生成了空白图形。
工作功能很简单:
rep_plotly <- function(.d, x = ~ FriendlyProjectName, y = ~ Percent) {
# If no data return no graph
if (nrow(.d) < 1) return(NULL)
.p <- plotly::plot_ly(
data = .d,
x = x,
y = y,
text = ~ hover,
hoverinfo = 'text',
type = "bar"
)
return(.p)
}