react-native - react-native PanResponder:OnMoveShouldSetPanResponder 不工作
问题描述
我正在使用 React-Native PanResponder 做一个小项目。
我的目标:我试图捕捉用户是否正在触摸屏幕,而不是四处移动。
我的问题:我无法在内部运行任何代码
onMoveShouldSetPanResponder(evt, gestureState)
以在用户仅触摸时阻止 PanResponder。
我尝试console.log
了参数gestureState
或随机字符串,但没有响应。
我的代码:
componentWillMount(){
this._panResponder = PanResponder.create({
onStartShouldSetPanResponderCapture: () => true,
onStartShouldSetPanResponder: (evt, gestureState) => true,
onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,
onMoveShouldSetPanResponder: (evt, gestureState) => {
// no console.log shown in this scope.
console.log(gestureState);
console.log("a string inside should set on move")
// the PanResponder still works despite this returns false
return false;
},
onPanResponderMove : (evt, gState) => {
// this works perfectly.
this.setState({addAngle: this.state.addAngle + gState.vy*40});
},
})
}
我的问题是:我在这里遗漏了什么吗?我看到了其他人的代码片段,他们似乎工作得很好。
我在哪里看到了示例代码:https ://gist.github.com/teameh/dd055d546a3bd8f85b9516840e3a45f3
技术:
react-native cli(无博览会)
来自 Android Emulator (Android Studio) 的 android API 版本 23
注意:我还没有在任何 Iphone 设备上进行测试。
干杯!
解决方案
我通过删除 onStartShouldSetPanResponder 解决了这个问题。我无法指出任何文档来支持这一点,但我相信 onStartShouldSetPanResponder 和 onMoveShouldSetPanResponder 是互斥的。
推荐阅读
- computer-vision - 姿态估计中的groundtruths(热图和PAF)是如何生成的?
- c# - 使用 SQL 语句将多个参数传递给 tableadapter
- swift - @Published 类没有成员 .store | 结合 SwiftUI
- mysql - 如何启用对在线存储的节点应用程序的多用户访问?
- azure - 如何获取 Azure APIM 健康检查和详细信息
- reactjs - 从 Firebase 获取数据而不在 React Native 中获取 uid 键
- foreach - SSIS在foreach循环中排除多个项目
- php - CakePHP 3:表单控件不显示其默认值或值
- postgresql - 在 Postgress 中使用 Pattern 将字符串拆分为新行
- ruby-on-rails - Rails:如何在部署 Docker 容器后立即启动 PORO/job/worker?