R 如何在其他无功内将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设置为
反应性
。我想知道是否可以将NULL设置为另一个
reactive
中的
reactive
——更准确地说,是将second
reactive
设置为返回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)