R 如何在其他无功内将NULL设置为无功?
单击按钮后,我需要将NULL设置为R 如何在其他无功内将NULL设置为无功?,r,shiny,R,Shiny,单击按钮后,我需要将NULL设置为反应性。我想知道是否可以将NULL设置为另一个reactive中的reactive——更准确地说,是将secondreactive设置为返回NULL。 在我下面的示例中,数据(作为模块参数)作为响应从其他模块传递 module_server <- function(id, data){ moduleServer( id, function(input, output, session) { ns <- NS(id)
反应性
。我想知道是否可以将NULL设置为另一个reactive
中的reactive
——更准确地说,是将secondreactive
设置为返回NULL。
在我下面的示例中,数据(作为模块参数)作为响应从其他模块传递
module_server <- function(id, data){
moduleServer(
id,
function(input, output, session) {
ns <- NS(id)
# 1st reactive
reactive1 <-reactive(data())
reactive1(NULL)
# more code...
module_server当满足某个条件时,是否要给它一个空值?e、 g
reactive1 <- reactive({
if(condition is met){
data()
} else {
return(NULL)
}
reactive1这是Winston Chang所说的“捕捉空值”。James编写的代码将起作用,但是,如果您在开始时捕捉到null,那么如果不满足初始条件,则任何依赖于反应式的代码也将为null。例如,如果下例中的r0
为null
,则r1
也将为null
。请注意,您不必显式地将r1
(或r0
)设置为null
。我个人的做法是:
r0<- shiny::reactive({
if(!is.null(input$blah)){
#do something here
}
})
r1<- shiny::reactive({
if(!is.null(r0())){
#do some other thing
}
})
r0带有return(NULL)的选项看起来还可以,但我更多考虑的是将NULL设置为reactive,例如当我单击按钮时。因此,对于reactiveValues
的情况,我会执行类似reactiveFunction$foo的操作。如果您想在单击按钮时使reactiveValue为空,请在按钮周围使用observeEvent
并将您的反应数据值存储在reactiveValues
列表中。例如,rvno,当点击按钮时,将NULL设置为reactive
。点击按钮将创建一个条件?例如,您可以使用if(input$button>0)
。