我正在开发我的第一个React Native项目。这是一个使用SDK 33的expo托管应用。
我想按照expo文档中描述的方法使用AccessibilityInfo API,文档链接在这里:https://docs.expo.io/versions/v33.0.0/react-native/accessibilityinfo/
该页面上的示例非常简单,但缺少一件事情:我从何处导入AccessibilityInfo?我的IDE自动补全建议我使用import {AccessibilityInfo} from "react-native-web";
,但那似乎是错误的,因为我理解react-native-web是帮助将react-native功能引入Web应用程序的工具。
所以我使用import {AccessibilityInfo} from "react-native";
代替。
但当我在组件中尝试以下操作时:
componentDidMount () {
AccessibilityInfo.isScreenReaderEnabled().then( (screenReaderEnabled) => {
console.log(screenReaderEnabled);
});
}
我遇到了一个“TypeError:_reactNative.AccessibilityInfo.isScreenReaderEnabled不是一个函数”的问题。
根据IDE的自动完成提示,AccessibilityInfo模块仅有以下方法:
addEventListener
,announceForAccessibilty
,fetch
,removeEventListener
,setAccessibilityFocus
。但是根据上面链接的expo文档,我应该拥有其他方法,如isScreenReaderEnabled
。我唯一的猜测是我没有正确地导入模块。但是在谷歌上搜索时我没有找到任何有趣的东西。所以有人可以指引我解决这个问题吗?
import AccessibilityInfo from "AccessibilityInfo"
- hong developerScreenReaderStatusExample
组件以及他们如何使用它 https://github.com/facebook/react-native/blob/3b6f6ca4d5fcee6f1bc6d6242e3e2ef136e4d546/RNTester/js/examples/Accessibility/AccessibilityExample.js - Train