javascript - react native : How to make a component do an action on press

标签 javascript reactjs react-native

我有一个很大的组件/ View ,占据了大部分屏幕。我希望它能显示一些有关新闻的附加信息。有没有办法让主组件捕获按下事件,或者是否需要由填充主组件的子组件捕获(尽量避免使用额外的子组件来保持一切更干净)?

我想要这样的东西,如果 onPress 可以在内部设置就更好了:

主视图:

<MainComponent onPress={ /* Call the components onPress */ } />

主要组件:

export default class MainComponent extends Component {
  ...

  onPress() {
    // display additional data
  }
}

谢谢。

最佳答案

在 React-Native 上,处理触摸是通过 Touchables 组件完成的。 (official doc)

您可以根据您的用途使用任何这些 native 组件。例如,如果您只想捕获主组件上的按下事件,则可以将其包装在 TouchableWithoutFeedback ( doc ) 下,并使用 onPress 属性。

export default class MainComponent extends Component {
  ...

  onPress() {
    // display additional data
  }

  ...

  render() {
    return (
        <TouchableWithoutFeedback onPress={() => this.onPress()}>
            <View>
               ...
            </View>
        </TouchableWithoutFeedback>
    )
  }
}

关于javascript - react native : How to make a component do an action on press,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45899422/

相关文章:

javascript - 在动态添加的 div 上初始化 owl carousel

javascript - 使用 ReactJS 构建自动完成文本框

javascript - 如何防止 React js 和 React-beautiful-dnd 中的原始容器掉落?

ios - 链接lottie-ios后编译报错

javascript - 在 react-native 中将嵌套 Realm 对象转换为 json

javascript - TypeScript - 如何从事件处理程序方法访问类实例

javascript - 不排除元素的 DOM 遍历

javascript - 避免在 Angular ui-router 中使用 ui-view

android - react native android/app/build.gradle 文件丢失

react-native - 如何使用 NativeBase 组件添加事件