Javascript 流类型错误:属性的类型未知。此类型与数组类型不兼容
我有以下JSX。比如:Javascript 流类型错误:属性的类型未知。此类型与数组类型不兼容,javascript,reactjs,react-jsx,flowtype,Javascript,Reactjs,React Jsx,Flowtype,我有以下JSX。比如: { event.divisions && event.divisions.edges && (event.divisions.edges: Array<Object>) .map(d => d.node) .map(division => ( <div>{division}</div> )) } { 事件。分区&& 事件、分割、边缘&& (ev
{
event.divisions &&
event.divisions.edges &&
(event.divisions.edges: Array<Object>)
.map(d => d.node)
.map(division => (
<div>{division}</div>
))
}
{
事件。分区&&
事件、分割、边缘&&
(event.divisions.edges:数组)
.map(d=>d.node)
.map(分区=>(
{除法}
))
}
如果不强制转换,它会告诉我它缺少注释。通过强制转换,我得到以下错误:
81: (event.divisions.edges: Array<Object>)
^^^^^^^^^^^^^^^^^^^^^ property `edges` of unknown type. This type is incompatible with
81: (event.divisions.edges: Array<Object>)
^^^^^^^^^^^^^ array type
81:(event.divisions.edges:数组)
^^^^^^^^^^^^^^^^^^^^^未知类型的属性“edges”。此类型与不兼容
81:(event.divisions.edges:数组)
^^^^^^^^^^^^^数组类型
这怎么可能是不相容的呢?那怎么可能是未知的呢?我明确地告诉了它类型。您可以按照以下方式映射对象数组
{
event.divisions &&
event.divisions.edges &&
event.divisions.edges.map(d => {
return d.node.map(division => (
<div>{division}</div>
))
}
}
{
事件。分区&&
事件、分割、边缘&&
event.divisions.edges.map(d=>{
返回d.node.map(分区=>(
{除法}
))
}
}
尝试这样做:
{
event.divisions &&
event.divisions.edges &&
(event.divisions.edges: $ReadOnlyArray<Object>)
.map(d => d.node)
.map(division => (
<div>{division}</div>
))
}
{
事件。分区&&
事件、分割、边缘&&
(event.divisions.edges:$ReadOnlyArray)
.map(d=>d.node)
.map(分区=>(
{除法}
))
}
是否要在Flow中循环对象event.divisions.edgescast的键是安全的。它仍将验证您提供的类型是否正确。如果不知道event
的来源及其类型,则无法解决问题。不过,这样做会导致另一个Flow错误。“81:event.divisions.edges^调用方法map
。无法对未知类型的81:event.divisions.edges^^^^^^^^^^^属性边
”调用方法“因此,如果我不添加强制类型转换,flow会警告我边未知。如果我添加强制类型转换,flow会给我一个不兼容的错误。您如何获取值,即event.divisions.edgesame问题…:-(