首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在其他reactive中将NULL设置为reactive?

如何在其他reactive中将NULL设置为reactive?
EN

Stack Overflow用户
提问于 2021-05-01 01:00:16
回答 2查看 49关注 0票数 0

我需要在单击按钮时将NULL设置为reactive。我想知道是否有可能将NULL设置为另一个reactive中的reactive -更准确地说,使第二个reactive返回NULL。在下面的示例中,data (作为模块参数)作为reactive从其他模块传递。

代码语言:javascript
复制
module_server <- function(id, data){
  moduleServer(
    id,
    function(input, output, session) {
      ns <- NS(id)

# 1st reactive
reactive1 <-reactive(data())

reactive1(NULL)

# more code...

如您所见,我试图将NULL设置为reactive1,但它不起作用。

EN

回答 2

Stack Overflow用户

发布于 2021-05-01 01:43:07

是否要在满足条件时为其赋予空值?例如:

代码语言:javascript
复制
reactive1 <- reactive({
 if(condition is met){
  data()
 } else {
  return(NULL)
 }
票数 0
EN

Stack Overflow用户

发布于 2021-05-01 02:05:32

这就是Winston Chang所说的“捕捉NULL”。James的代码将会工作,但是,如果您在开始时捕捉到null,那么在不满足初始条件的情况下依赖于反应式的任何东西也将是null。例如,如果下例中的r0null,则r1也将为null。请注意,您不必显式地将r1 (或r0)设置为null。我个人的方法是这样做:

代码语言:javascript
复制
r0<- shiny::reactive({
  if(!is.null(input$blah)){

    #do something here

  }
})

r1<- shiny::reactive({
  if(!is.null(r0())){
    #do some other thing
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67337770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档