Javascript 在可触摸元素内侦听press事件的元素
我有一个元素可以监听新闻事件。如何将其封装在可触摸元素中,并让自定义元素继续侦听事件 我有过这样的结构Javascript 在可触摸元素内侦听press事件的元素,javascript,reactjs,react-native,touchableopacity,touchablehighlight,Javascript,Reactjs,React Native,Touchableopacity,Touchablehighlight,我有一个元素可以监听新闻事件。如何将其封装在可触摸元素中,并让自定义元素继续侦听事件 我有过这样的结构 <TouchableOpacity onPress={(e) => { console.log(e.nativeEvent); }} style={{ flex: 1 }} > <EpubDocumentReader toggleEditHighlightModal={this.toggleEditHighlightModal}
<TouchableOpacity
onPress={(e) => { console.log(e.nativeEvent); }}
style={{ flex: 1 }}
>
<EpubDocumentReader
toggleEditHighlightModal={this.toggleEditHighlightModal}
onPress={(cfi, contents) => { console.log(cfi); }}
styleWidthBook={styleWidthBook}
/>
</TouchableOpacity>
{console.log(e.nativeEvent);}
style={{flex:1}}
>
{console.log(cfi);}
styleWidthBook={styleWidthBook}
/>
现在,
TouchableOpacity
捕捉新闻事件,但它不会调用子元素上的事件。您试图实现什么
您的自定义组件的onPress将永远不会被调用。
只会调用TouchableOpacity的onPress
您可以做的是设置组件的状态,并在下一个渲染周期将事件传递给EpubDocumentReader
<TouchableOpacity
onPress={(e) => {
console.log(e.nativeEvent);
this.setState({
event: e
})
}}
style={{ flex: 1 }}
>
<EpubDocumentReader
event={this.state.event}
toggleEditHighlightModal={this.toggleEditHighlightModal}
onPress={(cfi, contents) => {
console.log(cfi);
}}
styleWidthBook={styleWidthBook}
/>
</TouchableOpacity>
你想达到什么目的 您的自定义组件的onPress将永远不会被调用。 只会调用TouchableOpacity的onPress 您可以做的是设置组件的状态,并在下一个渲染周期将事件传递给
EpubDocumentReader
<TouchableOpacity
onPress={(e) => {
console.log(e.nativeEvent);
this.setState({
event: e
})
}}
style={{ flex: 1 }}
>
<EpubDocumentReader
event={this.state.event}
toggleEditHighlightModal={this.toggleEditHighlightModal}
onPress={(cfi, contents) => {
console.log(cfi);
}}
styleWidthBook={styleWidthBook}
/>
</TouchableOpacity>