dart 如何在任何方法或类中在点(.)之后或属性之前创建条件语句

qpgpyjmq  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(102)

如何在任何方法或类中在dont(.)之后或属性之前创建条件语句
例如我有以下

bool a = true ;

    FirebaseFirestore.instance.collection('users')
            .limit(10)
            .where('visible', isEqualTo: true) // here i need to use a? isEqualTo : whereIn
    
             {.............}

或者至少

a?.where('visible', isEqualTo: true) : .where('visible', whereIn: [1])

什么是最好的方法来做这件事,而不是使整个家长的条件

sqyvllje

sqyvllje1#

没有语法支持在两个不同的方法之间进行选择,以便在一个表达式中调用同一个接收器。
或者:

var query = FirebaseFirestore.instance.collection('users')
            .limit(10);
query = a 
  ? query.where('visible', isEqualTo: true)
  : query.where('visible', whereIn: [1]);
query....the rest...

或者,由于您调用的方法使用可选参数,它可能接受null作为不传递参数的等价物。在这种情况下:

FirebaseFirestore.instance.collection('users')
      .limit(10)
      .where('visible', isEqualTo: a ? true : null, whereIn: a ? null : [1])
      ...the rest ...

相关问题