android - panResponder 无法在反应原生 android 中工作
问题描述
我没有看到 panResponsder 在我的 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.log(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)你从 react-native 设置 this.state={PanResponder} 这个 PanResponder
所以 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.log(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.log(gesture);
},
onPanResponderRelease:()=>{}
});
this.state={panResponder};
}
render(){
return(
<View {...this.state.panResponder.panHandlers}>
</View>
);
}
}
推荐阅读
- opencv - 使用 ROS、2D 激光雷达和霍夫变换进行地平面检测
- android-studio - Android Studio 与 Gradle 中的差异构建项目
- connection - ROS:从 Jetson 板访问传感器数据
- ios - NSUserDefaults 多值为 nil
- php - MySQL 通过 LOAD DATA INFILE 从 csv 文件导入数据不起作用
- java - RMI 可以托管在 32000 以上的端口上吗?
- vbscript - 如何在 uft 功能测试中将 3 个对象链接在一起
- java - VueJS 和 SpringBoot 跨域错误
- git - 具有两个发布目标的 Git 分支实践
- mysql - 以一个用户身份登录并从表中删除记录。另一个登录的用户仍然可以看到记录。如何?