我正在寻找一种更改变量的方法,该变量已在 Shiny 的应用程序中的 react 性上下文之外初始化。

含义:我需要根据 Shiny 的应用程序中发生的情况将两个变量设置为 TRUEFALSE

这需要通过一个响应式(Reactive)函数来完成。

例子:

a <- FALSE
c <- FALSE

observeEvent(input$test, { #this triggers c to change to TRUE
    a <- FALSE
    c <- TRUE
)}

一些用户点击带有 label 测试的按钮
> c
> TRUE

最佳答案

如果我正确理解了您的问题(您无法在 c 函数中更新 observeEvent ),您需要将 c 变量放入响应式(Reactive)中并在 observeEvent 中更改它:

variables = reactiveValues(a = FALSE, c = FALSE)

observeEvent(input$test, {
    variables$a = FALSE
    variables$c = TRUE
})

然后你可以在你的代码中使用 variables$c ,如果你按下按钮(例如一个情节),任何依赖于 variables 的东西都会被更新。

10-08 03:11