shinyjs - 使用重置(shinyJS 功能)并一起单击然后观察单击的按钮的问题
问题描述
问题陈述:点击一个按钮(比如重置),我们需要重置一些控件,然后以编程方式点击另一个按钮(在这种情况下是更新)并执行一些逻辑并适当地渲染。
在下面的示例中,我在单击重置按钮时执行以下操作,我正在使用重置功能重置选择器输入,然后调用单击“更新”按钮。
预期的
单击重置时,两个文本都应为 NULL
发生的事情是:
第一个是NUll,第二个是最后一个值
我想了解其背后的原因。有趣的是,当我们调试时,它按预期工作。是否有解决方法来实现这样的目标?
library(shiny)
library(shinyWidgets)
library(shinyjs)
options(shiny.reactlog=TRUE)
# if (interactive()) {
# library(shiny)
shinyApp(
ui = fluidPage(
useShinyjs(),
div(
id = "form",
pickerInput(
inputId = "letter",
label = "Select max two option below:",
choices = c("A", "B", "C", "D"),
multiple = TRUE,
selected = NULL,
options = list(`actions-box` = TRUE)
),
verbatimTextOutput("selected_value"),
verbatimTextOutput("reset_value"),
),
actionButton("reset", "Reset"),
actionButton("update", "Update"),
),
server = function(input, output) {
msg <- "temp reactive"
msg_reactive <- reactiveValues(text = msg)
output$reset_value <- renderPrint(msg_reactive$text)
output$selected_value <- renderPrint(input$letter)
observeEvent(input$reset, {
reset("letter")
click("update")
})
observeEvent(input$update,{
## some logic , currently just setting it to current value of drop down letters
## I assume click on line number 52 triggers the control to come here
## but still values in input$letter are older onces and not NULL
## if I use a browser and then executes it works , Not sure where I am falling short
msg_reactive[['text']] <- input$letter
})
}
)
# }
解决方案
推荐阅读
- html - 为什么文本装饰在这种情况下不起作用?
- testing - 有没有办法在 Robot Framework 的 If 条件中设置变量?
- javascript - JavaScript:通过在标准 JS array.sort 的自定义比较函数中暂停来等待来自用户(比较 2 张图片)的 onclick 事件?
- java - 在 liquibasev 中禁用删除表
- c++ - 通过引用传递 std::istream 和 std::ostream 以在函数内使用
- html - 我在反应中的 CSS 类正在影响不同的页面
- javascript - 承诺 {
尽管使用了 async/await,但仍返回 - javascript - 反应数组中的元素。警告:React.createElement:类型无效
- laravel - npm 运行成功但终端进程停止(系统限制)
- python - 不和谐主题曲