首页 > 解决方案 > 进行本机平台特定函数调用的最佳方法?

问题描述

一些内置的 React-Native 函数,如setAccessibilityFocus仅适用于特定平台。在所有平台上调用这些函数的最佳方法是什么?

例如,最初我认为调用setAccessibilityFocus只是一个 noop,但我错了,而是你遇到了一个is not a function错误。我可以这样包装

if (Platform.OS === "ios") {
    AccessibilityInfo.setAccessibilityFocus()
}

或者我可以做一些类似的事情

if (AccessibilityInfo.setAccessibilityFocus !== undefined) {
    AccessibilityInfo.setAccessibilityFocus()
}

但是必须有比在代码中乱扔操作系统检查更好的方法。

标签: react-nativecross-platform

解决方案


您可以尝试使用try catch方法。

try {
    AccessibilityInfo.setAccessibilityFocus()
}
catch(err) {

   //if error eg: undefined goes here call another function

}

参考:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch


推荐阅读