Javascript 流量不';无法识别筛选不可变列表
我试图在两个单独的列表中呈现一些带有标题的React组件。为此,我使用布尔值来确定哪个组件进入哪个列表 我的代码是这样的:Javascript 流量不';无法识别筛选不可变列表,javascript,immutable.js,flowtype,Javascript,Immutable.js,Flowtype,我试图在两个单独的列表中呈现一些带有标题的React组件。为此,我使用布尔值来确定哪个组件进入哪个列表 我的代码是这样的: const children1:List=List([ bool1&&, bool2&&, ]).filter(值=>value!==false); const children2:List=List([ !bool1&&, !bool2&&, ]).filter(值=>value!==false); 这工作完全正常,但Flow不理解,在创建列表后,我过滤掉了false值
const children1:List=List([
bool1&&,
bool2&&,
]).filter(值=>value!==false);
const children2:List=List([
!bool1&&,
!bool2&&,
]).filter(值=>value!==false);
这工作完全正常,但Flow不理解,在创建列表后,我过滤掉了false
值,使其中只有SomeComponent
值:
bool1 && <SomeComponent key="0" />,
^^^^^ boolean. This type is incompatible with
const children1: List<SomeComponent> = List([
^^^^^^^^^^^^^^^^^^^ prototype
bool1&&,
^^^^^布尔型。此类型与不兼容
常量children1:List=List([
^^^^^^^^^^^^^^^^^^^原型
使用标准JavaScript数组时也会发生这种情况:
const children2:Array=[
!bool1&&,
!bool2&&,
].filter(值=>value!==false);
我可以做些什么来帮助Flow了解发生了什么?对于这种特定情况,可能的解决方法不是在列表中使用布尔值,而是使用空值:
const children2:List=List([
!bool1?:null,
!bool2?:null,
].filter(布尔值));
当过滤不可变而不是内部数组时,它不起作用,但这似乎与有关。对于这种特定情况,可能的解决方法不是在列表中使用布尔值,而是使用空值:
const children2:List=List([
!bool1?:null,
!bool2?:null,
].filter(布尔值));
当过滤不可变数组而不是内部数组时,它不起作用,但这似乎与