Javascript React原生Android WebView';s应答器不工作

Javascript React原生Android WebView';s应答器不工作,javascript,react-native,Javascript,React Native,我在tab navigator的一个屏幕中有一个webview。webview中有一些元素,用户可以水平滑动以显示更多信息。我遇到的问题是,每当用户试图在webview内水平滑动时,选项卡导航器就会检测到滑动,这会导致选项卡更改。这只会发生在Android设备上,而不会发生在iOS设备上 为了解决这个问题,我试图在webview中设置PanResponder,但它不起作用。甚至没有调用相关的方法,因为当我在webview上拖动手指时,控制台日志没有打印出来。以下是我的webview代码: imp

我在tab navigator的一个屏幕中有一个webview。webview中有一些元素,用户可以水平滑动以显示更多信息。我遇到的问题是,每当用户试图在webview内水平滑动时,选项卡导航器就会检测到滑动,这会导致选项卡更改。这只会发生在Android设备上,而不会发生在iOS设备上

为了解决这个问题,我试图在webview中设置PanResponder,但它不起作用。甚至没有调用相关的方法,因为当我在webview上拖动手指时,控制台日志没有打印出来。以下是我的webview代码:

import React, { Component } from 'react';
import { WebView, View, PanResponder} from 'react-native';

class CustomWebPage extends Component {
  componentWillMount() {
    this.gesture = PanResponder.create({
      onPanResponderTerminationRequest: () => false,
      onStartShouldSetPanResponder: (evt, gestureState) => true,
      onStartShouldSetPanResponderCapture: (evt, gestureState) => true,
      onMoveShouldSetPanResponder: (evt, gestureState) => true,
      onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,
      onPanResponderGrant: (evt, gestureState) => {
        console.log('onPanResponderGrant');
      },
      onPanResponderMove: (evt, gestureState) => {
        console.log('onPanResponderMove: ', evt, ', ', gestureState);
      },
     onPanResponderTerminate: (evt, gestureState) => {
        console.log('onPanResponderTerminate: ', evt, ', ', gestureState);
      },
      onPanResponderRelease: (evt, gestureState) => {
        console.log('onPanResponderRelease: ', evt, ', ', gestureState);
      },
    });
  }

  render() {
    return (
        <WebView
          source={{ uri: 'https://www.google.com.sg/' }}
          style={{ flex: 1 }}
          {...this.gesture.panHandlers}
        />
    );
  }
}

export default CustomWebPage;
import React,{Component}来自'React';
从“react native”导入{WebView,View,PanResponder};
类CustomWebPage扩展组件{
组件willmount(){
this.signature=PanResponder.create({
onPanResponderTerminationRequest:()=>false,
onStartShouldSetPanResponder:(evt,手势状态)=>真,
onStartShouldSetPanResponderCapture:(evt,手势状态)=>真,
onMoveShouldSetPanResponder:(evt,手势状态)=>真,
onMoveShouldSetPanResponderCapture:(evt,手势状态)=>真,
onPanResponderGrant:(evt,手势状态)=>{
log('onPanResponderGrant');
},
onPanResponderMove:(evt,手势状态)=>{
log('onPanResponderMove:',evt',',,gestureState);
},
onPanResponderTerminate:(evt,手势状态)=>{
log('onPanResponderTerminate:',evt',',gestureState);
},
onPanResponderRelease:(evt,手势状态)=>{
log('onPanResponderRelease:',evt',',,gestureState);
},
});
}
render(){
返回(
);
}
}
导出默认自定义网页;
用构造函数()替换组件willmount()

所以在这里

constructor(props) {
    super(props) {
// Here your PanResponder related codes

}

你解决了这个问题吗?没有,我没能解决。最后,我禁用了tab navigator的“滑动以更改选项卡”功能,这样我可以在WebView中水平滚动。您可以将
WebView
包装到
视图中。将窗格处理程序附加到视图<代码>