滑块在启动时为复杂闪亮的应用程序提供空值,并在输入更改时定期提供空值
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))
重要 以这种方式调用验证,因为其他包使用此名称。我花了很长时间尝试使用验证并收到错误,因为它从不同的包调用了错误的验证函数。
我目前正在使用 R 的 Shiny 包开发复杂的(多页嵌套 navs/tabs)Web 应用程序。
我目前遇到一个问题,有时会无缘无故地通过 input$ returns NULL 从 R 访问这些滑块的值。发生这种情况时,由于错误,无法产生依赖于这些滑块的各种输出。
如果用户通过更改输入强制应用程序重新计算,此问题就会消失。
该错误主要发生在启动时,但有时会在用户玩输入时出现在会话中间。
我目前正在研究一个干净的例子来重现这个,但是如果有人以前经历过这个或者有任何想法,我当然会很感激你的帮助。
正如我刚刚在另一个问题中回答的那样,尝试使用 observeEvent
也许吧? observeEvent
当反应值改变时触发给定的表达式,但默认情况下它会忽略 NULL 值。
在 shiny google 组中,我被告知这是预期的行为。输入需要时间来加载,您必须定义哪些输入需要非空才能生成每个给定的输出。
此处的解决方案是在相关输出中使用以下内容:
shiny::validate(need(input$myinput, message=FALSE))
重要 以这种方式调用验证,因为其他包使用此名称。我花了很长时间尝试使用验证并收到错误,因为它从不同的包调用了错误的验证函数。