PanResponder не работает в реакции на родном Android

Я не вижу, чтобы panResponder работал на моем телефоне Android, и я не вижу, чтобы приложение работало так, как ожидалось от него. Я использую expo и сканирую его, чтобы запустить приложение на моем устройстве Android. Вот код, и я также использовал отладчик, но ничего не работает.

export default  class Deck extends React.Component {
    constructor(props){
        super(props);
        //decalred as  local variable 
        this.PanResponder=PanResponder.create({
            onStartShouldSetPanResponder: () => true,
            onPanResponderMove:(event,gesture)=>{
                debugger;
                console.info(gesture);
            },
            onPanResponderRelease:()=>{}
        });
        this.state = {PanResponder};
    }
    renderCards=()=>{
        return this.props.data.map(item => {
            return this.props.renderCards(item);
        });
    }
    render(){
        return(
         <View {...this.state.PanResponder.panHandlers}> 
             {this.renderCards()}
         </View>
        );
    }
}
0
0
1 628
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

1) вы устанавливаете this.state = {PanResponder} этот PanResponder от react-native

так что this.state.PanResponder.panHandlers - ничто.

пытаться

export default  class Deck extends React.Component {
constructor(props){
    super(props);
    //decalred as  local variable 
    this.panResponder=PanResponder.create({
        onStartShouldSetPanResponder: () => true,
        onPanResponderMove:(event,gesture)=>{
            debugger;
            console.info(gesture);
        },
        onPanResponderRelease:()=>{}
    });
}
render(){
    return(
        <View {...this.panResponder.panHandlers}>
        </View>
    );
}

}

или же

export default  class Deck extends React.Component {
constructor(props){
    super(props);
    //decalred as  local variable 
    const panResponder=PanResponder.create({
        onStartShouldSetPanResponder: () => true,
        onPanResponderMove:(event,gesture)=>{
            debugger;
            console.info(gesture);
        },
        onPanResponderRelease:()=>{}
    });
    this.state = {panResponder};
}
render(){
    return(
        <View {...this.state.panResponder.panHandlers}>
        </View>
    );
}

}

Другие вопросы по теме