在我的应用程序中,我有一个嵌套的可touch 元素.

代码如下:

    <TouchableHighlight style={{ flex: 1 }} onPress={() => { console.log('outer press') }}>
        <TouchableHighlight style={{ flex: 0.8, backgroundColor: 'blue' }} onPress={() => { console.log('inner press') }}>
            <Text>1</Text>
        </TouchableHighlight>
    </TouchableHighlight>

推荐答案

Touchables包含一个本地州,它是本地的,其他Touchablesnot aware of it.

因此,当您touch 嵌套的Touchable时,事件被传播到访问状态的子元素,并且除非资源完成,否则不会释放资源

下面是嵌套buttons的生命周期,如docs中所述

Parent: Parent Touchable
Child: Child Touchable

Parent onStartShouldSetResponder > Parent onResponderGrant > Parent onResponderTerminationRequest > Parent onResponderTerminate > Child onStartShouldSetResponder > Child onResponderGrant > Child onResponderRelease

Parent will not get access due to 100

如果家长View想要阻止子元素成为touch 启动的响应者,它应该有一个返回trueonStartShouldSetResponderCapture处理程序.

你可以看看这个video

React-native相关问答推荐

react-native useEffect / useFocusEffect / useCallback 没有正确更新

一旦我关闭应用程序,Json struct 就会发生变化

React Native 应用程序没有在之前的工作代码中执行任何操作就无法运行

react-native (expo)加载markdown 文件

ReactNative 0.43-rc.2 FlatList -- 试图获取超出范围索引 0 的框架

create-react-native-app myproject和react-native init myproject之间的真正区别是什么

React Native 在升级到 0.56 版本后崩溃

如何在react-native android中打开应用程序设置页面?

如何在 react-native 中获取组件的大小?

如何使用 InteractionManager.runAfterInteractions 使导航器过渡更快

React-Native 应用程序中来自 Babel 的未知选项错误

React Native Remote Debugger 在 Chrome 中显示缓存的包

java.lang.ClassNotFoundException:在路径上找不到类.MainActivity:DexPathList react-native

Fragment片段内的react-native

在 React Native 中,如何使用浅渲染测试我的组件?

React Native - 为什么执行这个函数?

如何在react-native中绘制虚线边框样式

如何在 React Native 中更改 textInput 占位符的字体系列

python 3与本机兼容吗?还是我应该按照 react 文档的建议安装 python 2?

React Native + Redux 基本认证