【问题标题】:Pass touch event to view's parent in react native.在本机反应中将触摸事件传递给视图的父级。
【发布时间】:2018-07-11 10:22:47
【问题描述】:

我有一个<view> 触摸,它将打开一个可折叠的视图。我已经为它使用了 react-native-collapse-view (https://www.npmjs.com/package/react-native-collapse-view) 我在 <view> 之上有 <text>,它完全覆盖了它。我在<text> 元素的onPress 事件中设置了一些条件。

现在我想要的是如果我触摸<text>(显然我无法触摸视图,因为文本已完全覆盖它),以及<text>onPress 事件@ 也应该触摸底层<view>以便它打开可折叠视图。

简而言之,我想将触摸事件传递给父视图,以便一键完成所有工作。我搜索并找到了一些与onStartShouldSetResponderpointerEvents 相关的内容,但我无法完全掌握,因为我是一个新手,无法反应原生。

【问题讨论】:

  • 你能用 redux 之类的东西触发事件并让动作做你需要的吗?如果可以的话,另一件事是从父级向子级发送一个函数(如@dbvt10),可以吗?我认为如果有更多的上下文,我们可以更好地回复,你能给出代码的 sn-p 吗?

标签: react-native touch-event


【解决方案1】:

简而言之,您需要将函数传递给子级以处理事件

import React from "react";

class ChildComponent extends React.PureComponent {
  render() {
    const {handleChildPress} = this.props;
    return <Text onPress={handleChildPress}/>;
  }
}

class ContainerComponent extends React.PureComponent {

  // you need pass this func to children
  // =()=> means  bind it
  handleChildPress=()=>{
     console.log('child pressed')
  }

  render() {
    return <ChildComponent handleChildPress={this.handleChildPress}/>;
  }
}



export default ContainerComponent

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2014-05-21
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多