React Native - AccessibilityInfo.setAccessibilityFocus() 中的 reactTag 参数是啥?

Posted

技术标签:

【中文标题】React Native - AccessibilityInfo.setAccessibilityFocus() 中的 reactTag 参数是啥?【英文标题】:React Native - What is reactTag parameter in AccessibilityInfo.setAccessibilityFocus()?React Native - AccessibilityInfo.setAccessibilityFocus() 中的 reactTag 参数是什么? 【发布时间】:2018-11-25 07:42:48 【问题描述】:

AccessibilityInfo.setAccessibilityFocus(reactTag) 方法中的reactTag 参数是什么? React native documentation 不提供关于这个参数的任何信息:

将可访问性焦点设置为 React 组件。在 android 上,这是等价的 到 UIManager.sendAccessibilityEvent(reactTag, UIManager.AccessibilityEventTypes.typeViewFocused);.

我没有Objective-CJava 的任何背景。一个小例子将不胜感激。谢谢!!!

【问题讨论】:

【参考方案1】:

reactTag 只是一个数字,react 使用它来识别应用程序中的视图对象。它是findNodeHandle函数的结果,它以视图引用为参数。

下面是一个简单的例子,告诉你如何使用它:

import React, Component from 'react'
import 
  ...
  findNodeHandle,
  ...
 from 'react-native';

class Sample extends React.Component 
    constructor(props) 
        super(props)
        this.viewRef = null;
    

    ...

    componentDidMount() 
        if (this.viewRef) 
            const reactTag = findNodeHandle(this.viewRef);
            AccessibilityInfo.setAccessibilityFocus(reactTag);
        
    

    render() 
        return (
            <View ref=el =>  this.viewRef = el >
                ...
            </View>
        )
    

【讨论】:

您好,想知道即使已经加载了组件并启用了可访问性,这是否仍然有效。换句话说,是否有可能仅在组件即将获得焦点之后才设置可访问性焦点? 我在使用这个解决方案时遇到了很多麻烦,请参阅***.com/questions/63252638/…

以上是关于React Native - AccessibilityInfo.setAccessibilityFocus() 中的 reactTag 参数是啥?的主要内容,如果未能解决你的问题,请参考以下文章

react native 增加react-native-camera

更新 react-native-maps 以使用 create-react-native-app

react native 增加react-native-storage

React-Native 和 Expo:create-react-native-app 和 react-native init 之间的区别

什么是 react-native-cli 和 @react-native-community/cli?

React Native - 当 react-native 版本 > 0.55 时,无法通过 react-native-cli 创建新项目