Я не вижу, чтобы 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>
);
}
}
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>
);
}
}