r - 暂停闪亮会话并返回前端 UI
问题描述
当用户单击提交按钮时,是否有任何解决方案可以返回到应用程序的当前状态。如果不满足一个条件,则应用显示信息并返回初始 UI。
观察事件(输入$sub,{
if (input$test == TRUE) {
shinyalert("You made error", type = "error")
stop () #need back initial state before click button stop() stops app completely
}
}
解决方案
您可以使用library(shinyjs)
重置会话。这是您提供的示例observeEvent
:
library(shiny)
library(shinyalert)
library(shinyjs)
jsResetCode <- "shinyjs.reset = function() {history.go(0)}"
ui <- fluidPage(
useShinyalert(),
useShinyjs(),
extendShinyjs(text = jsResetCode),
titlePanel("Old Faithful Geyser Data"),
sidebarLayout(
sidebarPanel(
actionButton("sub","sub"),
checkboxInput("test", "test"),
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
mainPanel(
plotOutput("distPlot")
)
)
)
server <- function(input, output, session) {
observeEvent(input$sub, {
if(input$test == TRUE){
shinyalert("You made error", type = "error")
}
})
observeEvent(input$shinyalert, {
if(input$shinyalert == TRUE){
js$reset()
}
})
output$distPlot <- renderPlot({
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
}
shinyApp(ui = ui, server = server)
推荐阅读
- sql - 如何在 SQL Server 中将单列转换为单行?
- git - Source\config\config.inc.ahk 被 git 忽略
- arduino - Arduino 8x8 led 矩阵字母
- spring - 在多线程环境中无法关闭跨度
- reactjs - 在 typescript3 中将参数定义为特定类型的数组
- google-chrome - 为什么表情符号在 Chrome 扩展弹出窗口中不起作用?
- java - 通过浏览器向 JSP 传递数据:Spring boot
- sed - 如何在 Makefile (POSIX) 中使用的 sed 命令中保持换行符不变?
- node.js - 使用聚合框架匹配包含对象的对象数组
- python - 尝试在函数中配置它时,画布小部件说未定义