在Shiny app中通知用户他的错误输入

ton*_*nov 3 r shiny shinysky

我们来看看其中一个演示.

runExample("09_upload")
Run Code Online (Sandbox Code Playgroud)

我正在使用提供的文件执行一些计算并显示所有上传文件的聚合性能.因此,我使用类似的东西

tryCatch(compute.smth(), error=function(e){})
Run Code Online (Sandbox Code Playgroud)

这样显示的结果不会受到错误输入的影响.但是,我想以某种方式表明上传坏文件会导致错误,通知用户输入的问题.它会是这样的

tryCatch(compute.smth(), error=badFile())
Run Code Online (Sandbox Code Playgroud)

其中badFile()应该修改一些可显示的输出.有任何想法吗?作为最后的手段,可能是一个选择,但我想要一些原生的Shiny.

xia*_*dai 5

您可以使用ShinySky软件包显示如下警告:https://github.com/AnalytixWare/ShinySky

在此输入图像描述

您可以使用安装包

install.packages("devtools")#if not alrady installed
devtools::install_github("ShinySky","AnalytixWare")
Run Code Online (Sandbox Code Playgroud)

将一个shinyalert(id)放在ui.R中,以显示警告的位置.

在你的server.R

  1. 确保将3个参数函数传递给shinyServer egshinyServer(函数(输入,输出,会话){
  2. 使用showshinyalert(id,HTMLText,session)来显示警报.单击警报将忽略它.
  3. 请参阅此要点,例如https://gist.github.com/xiaodaigh/7707701

运行这个也看一个例子

shinysky::run.shinysky.example()
Run Code Online (Sandbox Code Playgroud)