如何满足Flow中的“不精确函数”错误?

问题描述 投票:0回答:1

好,所以我有一个非常简单的方案,该方案可以工作,但是我的问题是保持流程顺畅。

const StatusImage: React$Element<*> =
            props.statusImage ? (props.statusImage) : ((): React$Element<*> => <div/>);

如果组件的用户通过StatusImage道具提供一个,我想在我的React组件中显示statusImage。否则,我只想保留该图标为空白的空间。

可以,但是出现以下无法解决的流量错误。我正在使用flow-bin版本0.113.0


Cannot assign props.statusImage ? props.statusImage : (...) => <div /> to StatusImage because inexact function [1] is
incompatible with exact React.Element [2].

 [2] 121|         const StatusImage: React$Element<*> =
 [1] 122|             props.statusImage ? (props.statusImage) : ((): React$Element<*> => <div/>);

我已经搜索了inexact函数流错误,但找不到任何能解决我问题的地方。这似乎是一个非常新的错误,仅在最近的流中才开始对其进行检查。

javascript reactjs flowtype
1个回答
0
投票

经过进一步的试验和错误,这似乎可行。...

 const StatusImage: React$Element<*> | () => React$Element<*> =
            props.statusImage ? (props.statusImage) : ((): React$Element<*> => <div/>);
© www.soinside.com 2019 - 2024. All rights reserved.