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

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

本文关键字:空值 周期性 输入 应用程序 启动 复杂      更新时间:2023-09-26

我目前正在使用R的Shiny包开发一个复杂的(嵌套navs/tab的多个页面)web应用程序。

我目前遇到一个问题,有时通过输入$从R访问这些滑块的值返回NULL,没有明显的原因。当发生这种情况时,由于错误,无法产生依赖于这些滑块的各种输出。

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

该错误主要发生在启动时,尽管有时它会在会话中间发生,因为用户正在使用输入。

我目前正在做一个干净的例子来复制这个,但是如果有人以前有过这样的经历或有任何想法,我当然会感谢你的帮助。

正如我刚才在不同的问题中回答的那样,尝试使用observeEvent也许?observeEvent在响应值发生变化时触发给定表达式,但默认忽略NULL值。

https://stackoverflow.com/a/30514860/3943160

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

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

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

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