当前位置: 首页 > 知识库问答 >
问题:

本机反应:在Press上查看不起作用

吕霍英
2023-03-14

我遇到了一个奇怪的问题。在我的反应原生应用程序中,如果我将onPress事件设置为View,它不会被触发,但如果我将相同的设置为View中的Text,它会被触发。我在这里错过了什么?

<View style={{backgroundColor: "red", padding: 20}}>
  <Text onPress={()=> {
    console.log('works');
    }
  }>X</Text>
</View>


<View style={{backgroundColor: "red", padding: 20}} onPress={()=> {
    console.log('does not work');
    }
  }>
  <Text>X</Text>
</View>

为什么会这样?这是React Native的问题吗?我使用的是0.43版。

共有3个答案

龚国源
2023-03-14

或者,您也可以在Start上提供应设置应答器以您的视图,如下所示:

<View onStartShouldSetResponder={() => console.log("View click")}>
  // some code here
</View>
夏侯嘉荣
2023-03-14

您可以使用可触摸与不支持的反馈来包装视图,然后像往常一样使用 onPress 和朋友。此外,您仍然可以通过在子视图上设置属性来阻止指针事件,它甚至可以阻止父视图上的指针事件,没有反馈,有趣的是,这是我在Android上的需求,我没有在iOS上进行测试:

https://facebook.github.io/react-native/docs/touchablewithoutfeedback.html

<TouchableWithoutFeedback onPressIn={this.closeDrawer}>
    <Animated.View style={[styles.drawerBackground, styleBackground]} pointerEvents={isOpen ? undefined : 'none'} />
</TouchableWithoutFeedback>
雍志文
2023-03-14

您可以对< code>onPress事件使用< code>TouchableOpacity。< code >视图不提供< code>onPress属性。

<TouchableOpacity style={{backgroundColor: "red", padding: 20}} onPress={()=> {
    console.log('does not work');
    }
  }>
  <Text>X</Text>
</TouchableOpacity>
 类似资料:
  • 问题内容: 我是新来的人,我想做出反应并尝试使用内联样式获取背景图片。但这不起作用。 显示错误“ URL未定义” 问题答案: CSS值始终是字符串。将值用引号引起来,使其成为字符串:

  • 问题内容: 我试图将onscroll事件处理程序添加到特定的dom元素。看下面的代码: 代码非常简单,如您所见,我想处理div#list滚动。当我运行此示例时,它不起作用。所以我尝试直接在render方法上绑定this._handleScroll,它也不起作用。 因此,我打开了chrome inspector,直接使用以下命令添加了onscroll事件: 它正在工作!我不知道为什么会这样。这是Re

  • 问题内容: 为什么colspan属性在React中不起作用?我创建了呈现以下内容的简单组件: 编辑:解决 这是解决方案。React期望属性名称为 colSpan ,而不是colspan。在浪费了荒谬的时间去发现这个小小的邪恶事实之后,想出了这一点。 问题答案: 来自React的DOM差异文档: 所有DOM属性和属性(包括事件处理程序)都应包含驼峰,以与标准JavaScript样式保持一致。 如果您

  • 我在我的应用程序中使用Redux,在一个组件中,当商店发生变化时,我想滚动到一个特定的div标签。我让Redux部分工作,因此它触发componentDidUpdate()方法(我已经路由到此component视图)。据我所知,问题在于方法scrollIntoView()无法正常工作,因为componentDidUpdate()有一个默认行为,即滚动到顶部覆盖scrollIntoView()。为了

  • 问题内容: 该代码非常有用: 但是这段代码 不起作用 : 它引发此错误: ZMQError:没有这样的设备 为什么,zeromq无法使用localhost接口? 它只能在同一台计算机上的IPC上运行吗? 问题答案: 问题在于: 尝试更改为:

  • 问题内容: 这是我的代码,它可以在台式机和平板电脑上完美运行,但不能在移动设备上运行。是代码还是在移动设备上无法使用某些字体 问题答案: 您需要添加所有需要的内容来喜欢这个示例: 资料来源 :https://css-tricks.com/snippets/css/using-font-face/ 希望能有所帮助,加油。 ( 如果您需要转换字体,则需要此 字体生成器 )