问题标签 [panresponder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - React Native - 使用两个屏幕(组件)在 5 分钟后注销
我有一个 expo 应用程序,我想在 5 分钟后实现自动注销。
在用户登录时显示的第一个组件中,我创建了:
下面的代码工作正常,但是当我切换到新屏幕(新组件)时,我无法更新注销时间。
如何更新下一个屏幕上的时间?
在屏幕上,我放了{... this._panResponder.panHandlers}
.
react-native - React Native - onPress 触发错误事件
我正在尝试制作一个旋转的魔方,它具有每个小立方体作为触发事件的可触摸组件 - 触摸橙色、绿色和黄色上的立方体会触发正确的事件,而触摸其他颜色上的一些立方体最终会触发事件这 3 种(橙色/绿色/黄色)颜色中的一种。我该如何解决?
这是 App.js:
这是 utils.js:
这是 SmallBox.js:
react-native - 为什么 PanResponder 不能使用 useEffect Hook?
我正在尝试使用 useEffect 找到 ComponentWillMount 方法的替代品。但是 panresponder 变量不是在初始渲染之前创建的。谁能告诉我我在这里做的任何错误?没有 useEffect,页面将被渲染。手势未被捕获。
react-native - 动画 getLayout() 函数在 react-native 中不起作用
我正在使用 Animated.ValueXY() 中的 getLayout() 方法。执行代码时,抛出错误“TypeError: position.getLayout is not a function”。谁能帮我解决这个问题?
错误:在此处输入图像描述
react-native - panResponder 在屏幕上有两次触摸时继续捕获
我希望当屏幕上有两次触摸时 panResponder 继续前进并且不停止但大约半秒后 panResponder 停止并开始滚动这是我的代码
我想当屏幕上有两次触摸时 panResponder 开始,直到有两次触摸它继续,当有一次触摸它停止
reactjs - react-native [Expo]:我可以增加 PanResponder 的输入采样率吗?
我目前正在为我的 Expo 应用程序实现一个基于react-native-svg的绘图输入(这是对这个答案的轻微修改:链接)。我使用 aPanResponder
来注册移动事件并创建不同的路径,然后Polyline
当用户在视图上绘制时显示为多个元素,如下所示:
不幸的是,我制作的线条非常粗糙且参差不齐,我相信PanResponder.onPanResponderMove
处理程序被触发的频率太低,无法满足我的需要(平均而言,它在 Android Pixel 4 模拟器上每 50 毫秒调用一次,我不确定我是否可以期待更多真实设备)。
在我的用例中,也许有比 PanResponder 更好的人选来处理手势?
我已经实现了一个平滑功能(基于此答案链接),它的行为正确,但由于这些点彼此相距太远,用户的输入会明显失真。
这是一个没有平滑的例子:

在我的 GestureHandler 实现下面:
边注
我没有在 PanResponder 上找到任何文档表明存在采样率配置选项,因此我完全愿意接受替代方案(甚至完全放弃 PanResponder + 本机 SVG 方法),只要我不必退出 expo 项目并且我可以可以控制布局(我不想使用特定 UI 附带的外部组件)。
我曾尝试使用expo-pixi库(特别是Sketch
组件),但存储库似乎不再被维护,并且 expo 客户端在使用它时始终崩溃。
javascript - React Native PanResponder 在旋转变换后表现相反
React Native PanResponder 在旋转变换后沿相反方向平移
在上面的代码中,旋转 180 度后平移响应器计算的平移与用户的触摸手势相反。我怎样才能正确地翻译为角度可以是任何值。请在此处查看实时示例代码和框
react-native - React Native PanResponder onStartShouldSetPanResponder locationX 因平台而异
我是 RN 手势 api 的新手,所以如果其中任何一个看起来像是一种根本不正确的方法,我将非常感谢您的反馈以及关于在哪里寻找的任何建议。谢谢!
目标
- 使用 PanResponder api 仅处理轻击和滑动手势
- 仅用于
onStartShouldSetPanResponder
处理点击和预移动滑动 - 保证
event.nativeEvent
handled byonStartShouldSetPanResponder
具有相对于ListComponent 的定位信息,而不是列表组件的子项。
event.nativeEvent
根据我是否通过 expo 的本地 Web 服务器和 expo ios 应用程序进行测试,以下代码会收到不同的结果。考虑到底层基础设施的不同,这似乎是合理的。
我的预感是,在 ios 上,onStartShouldSetPanResponder 处理程序触发“太晚”(或太早?),也就是说,手势被归因于子组件,因此冒泡到该处理程序的事件具有相对于子组件的定位组件,而不是下面渲染函数中的列表组件。
鉴于列表组件是 300px 宽,并且列表组件中有 3 100px 宽的项目,从列表组件左侧点击大约 5/6 的宽度会在 web 上产生 ~250/300(正确)的 locationX 和50/300 在 iOS 上。
似乎在 ios 上,事件相对于第三个 100px 宽的子元素定位。
附加背景:
react-native - React Native:带有文本选择的 PanResponder
如果在屏幕上选择了其他内容,则拖动并不总是有效。特别是对于网页,在此示例中,如果选择了“拖动此框标题”的一部分,则该框不可拖动,因为浏览器尝试拖动所选文本。有什么办法可以避免这种情况吗?
react-native - 在本机反应中插入 flex 道具
我的第一个问题是我们可以在 react native 中插入 flex 属性吗?
如果是,那么我在下面有这段代码,我试图在其中插入 flex 属性以实现可拖动的底页,或者你可以说一个模态(就像内置的反应原生模态一样)。
这是构造函数代码>
这是我班级的渲染功能>
在上面的代码中,我可以插入组件 Animated.View 的背景颜色的值,但是在尝试插入 flex 属性时,我收到如下错误。
不变违规:[7,"RCTView",{"flex":"<>"}] 不能用作本机方法参数
请给出适当的解决方案。:)