检查Native UI组件是否存在

时间:2018-02-23 17:40:18

标签: react-native

我尝试使用原生UI组件,例如声明here和。{ here

问题在于我不知道是否实现了相应的本机组件。 如果我需要一个不存在的组件,如下所示:

requireNativeComponent('InexistentComponent', null);

我收到此错误:

Invariant Violation: Native component for "InexistentComponent" does not exist

使用try/catch包装代码似乎没有任何效果:

try {
    const native = requireNativeComponent('InexistentComponent', null);
    return native;
} catch (_) {
    return null;
}

那么有一种方法可以在用requireNativeComponent要求它之前找出某个组件是否确实存在吗?

1 个答案:

答案 0 :(得分:1)

您可以使用NativeModules.UIManager检查该组件的键列表中是否存在您的组件。

例如:

import { requireNativeComponent, NativeModules } from "react-native";

let CustomComponent = null;

if ("CustomComponent" in NativeModules.UIManager) {
   CustomComponent = requireNativeComponent("CustomComponent")
}