React native 在ref上调用的流不接受方法

React native 在ref上调用的流不接受方法,react-native,flowtype,React Native,Flowtype,我有一个呈现TextInput的组件,我已经为该子组件指定了一个引用: 回来 this.textInput=ref} //…道具 }} /> //…其他东西 } ; 按照上的说明,我已设置了类型为?TextInput的实例属性: 导出类AutoFillMapSearch扩展React.Component{ textInput:?textInput; // ... Flow接受将其作为ref的类型。但是,当我编写此.textInput.blur;时,Flow抱怨: Cannot call this

我有一个呈现TextInput的组件,我已经为该子组件指定了一个引用:

回来 this.textInput=ref} //…道具 }} /> //…其他东西 } ; 按照上的说明,我已设置了类型为?TextInput的实例属性:

导出类AutoFillMapSearch扩展React.Component{ textInput:?textInput; // ... Flow接受将其作为ref的类型。但是,当我编写此.textInput.blur;时,Flow抱怨:

Cannot call this.textInput.blur because property 'blur' is missing in null or undefined.
我知道ref是一种maybe类型,所以我有点理解为什么会出现这个错误,但我不知道如何修复它

该应用程序工作得很好,这里抱怨的只是流程。

在组件生命周期的某些时间,ref可以为null:


为了防止出现这种情况,您需要在使用ref之前检查ref是否为null。要做到这一点,您可以使用if语句或this.textInput&&this.textInput.blur,正如@Marko Savic在注释中建议的那样。

我认为这里一切都很好。查看ref函数:使用逻辑运算符解决此.textInput&&this.textInput.blur