当可访问性为真时,React Native无法找到子元素

时间:2016-02-09 11:07:27

标签: react-native

使用这个JSX:

<View>
  <Text testID='t1'>text 1</Text>
  <Text testID='t2'>text 2</Text>
</View>

我可以通过testID找到子元素(例如使用Appium)

如果我将View更改为TouchableOpacity,则子元素似乎会在iOS上聚集到一个UIAElement中,然后无法找到。

看起来TouchableOpacity将其可访问属性硬编码为true并启用收集行为(请参阅https://code.facebook.com/posts/435862739941212/making-react-native-apps-accessible/

这是预期的行为吗?它使测试变得非常困难。

1 个答案:

答案 0 :(得分:6)

任何可触摸的元素或组件都默认为accessible = {true}。如果您不希望它们组合在一起,请尝试以下方法:

<View accessible={false}>
  <Text testID='t1'>text 1</Text>
  <Text testID='t2'>text 2</Text>
</View>

这应该允许孩子成为他们的一个元素,而不是一个元素(视图元素)。