如何修复React Native Flow Throw错误丢失为空或未定义

时间:2018-12-03 06:53:35

标签: javascript reactjs react-native jsx flowtype

我正在en_time上课。我正在将React NativeAtomNuclide结合使用来制作项目。我正在跟随讲师,但是在每节课之后,我都试图消除Flow扔给我的所有错误。但是我真的很固执。我收到此错误消息:

  

无法获取prevState.selectedPlace.key,因为属性键缺少null或未定义。

下面是我的代码,我标记出我在哪一行中得到了Flow函数中发生的错误。

placeDeletedHandler

我确定其他人可能也有类似的问题。我花了几个小时试图解决它。我找到的最接近的东西是这个链接:https://github.com/facebook/flow/issues/6954

如果有人可以帮助解决此问题并解释其原因,我想知道并确保其他这样做的人也希望知道。谢谢。

1 个答案:

答案 0 :(得分:1)

您正在使用maybe type状态:

type State = {
   selectedPlace: ?{ key: string, ...}
   ...
  }

-问号表示selectedPlace可能是nullundefined。因此,flow希望您进行安全检查,确定已定义selectedPlace,最简单的方法可能是:

return prevState.selectedPlace && place.key !== prevState.selectedPlace.key

或者,您可以取消标记selectedPlace中的类型。