Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在移动过程中做出本机停止盘手势的反应_Reactjs_React Native - Fatal编程技术网

Reactjs 在移动过程中做出本机停止盘手势的反应

Reactjs 在移动过程中做出本机停止盘手势的反应,reactjs,react-native,Reactjs,React Native,我想在PanResponder系统仍在运行时停止它。i、 e.如果满足条件,取消或结束手势 我有一个Animated.Value连接到手势,还有一个监听该值的人。如果大于100,我希望暂停平移手势。您需要在移动时设置PanResponder中返回false以停止PanResponder。考虑下面的例子: this._panResponder = PanResponder.create({ {...} onMoveShouldSetPanResponder: (e, gestureStat

我想在
PanResponder
系统仍在运行时停止它。i、 e.如果满足条件,取消或结束手势


我有一个
Animated.Value
连接到手势,还有一个监听该值的人。如果大于100,我希望暂停平移手势。

您需要在移动时设置PanResponder中返回false以停止PanResponder。考虑下面的例子:

this._panResponder = PanResponder.create({
  {...}
  onMoveShouldSetPanResponder: (e, gestureState) => {
    if (stopPanResponder) {
      return false;
    }
    return true;
  },
  {...}
  onPanResponderTerminationRequest: () => true
});

您可以通过在父视图上启用
PanResponder
来停止
PanResponder
系统

从目前的情况来看,我们有:

使用调用onStartShouldSetResponder和onMoveShouldSetResponder 冒泡模式,其中最深的节点首先被调用。这意味着 当出现多个视图时,最深的组件将成为响应者 对于*ShouldSetResponder处理程序,返回true。这在中国是可取的 大多数情况下,因为它确保所有控件和按钮都可用

然而,有时家长会希望确保它成为 响应者。这可以通过使用捕获阶段来处理。在 应答器系统从最深的组件冒出气泡,它将执行 捕获阶段,在*ShouldSetResponderCapture上启动。所以如果一个父母 View希望防止孩子在触摸时成为响应者 开始时,它应该有一个onStartShouldSetResponderCapture处理程序 返回true

在您的情况下,当满足条件时,应该为父视图设置onMoveShouldSetPanResponderCapture

onMoveShouldSetPanResponderCapture: () => this.isMyConditionTrue(),
并且,还要在子响应程序上设置以下属性:

onPanResponderTerminationRequest: () => true,
以便允许父级捕获响应者