滑块在启动时为复杂闪亮的应用程序提供空值,并在输入更改时定期提供空值

Sliders providing null values to complex shiny application at startup and periodically as inputs change

我目前正在使用 R 的 Shiny 包开发复杂的(多页嵌套 navs/tabs)Web 应用程序。

我目前遇到一个问题,有时会无缘无故地通过 input$ returns NULL 从 R 访问这些滑块的值。发生这种情况时,由于错误,无法产生依赖于这些滑块的各种输出。

如果用户通过更改输入强制应用程序重新计算,此问题就会消失。

该错误主要发生在启动时,但有时会在用户玩输入时出现在会话中间。

我目前正在研究一个干净的例子来重现这个,但是如果有人以前经历过这个或者有任何想法,我当然会很感激你的帮助。

正如我刚刚在另一个问题中回答的那样,尝试使用 observeEvent 也许吧? observeEvent 当反应值改变时触发给定的表达式,但默认情况下它会忽略 NULL 值。

在 shiny google 组中,我被告知这是预期的行为。输入需要时间来加载,您必须定义哪些输入需要非空才能生成每个给定的输出。

此处的解决方案是在相关输出中使用以下内容:

shiny::validate(need(input$myinput, message=FALSE))

重要 以这种方式调用验证,因为其他包使用此名称。我花了很长时间尝试使用验证并收到错误,因为它从不同的包调用了错误的验证函数。