react-native onPanResponderMove奇怪的行为没有文档Animated.Event

时间:2017-01-11 08:46:45

标签: reactjs react-native react-animated

当我使用

时,我注意到react-native panResponder onPanResponderMove方法调用
  onPanResponderMove: Animated.event([null, {dx: this._pan}]),

但是当我尝试使用时:

  onPanResponderMove: (e, gestureState) => {
    Animated.event([null, {dx: this._pan}])
  },

该方法无法调用。 是否有其他javascript语法我可以使用,以便我有一个功能范围,我可以使用Animated.event

2 个答案:

答案 0 :(得分:3)

Animated.event()返回一个函数。如果要运行该功能,则必须调用它。我假设您的用例是您想要在每一步中执行某些操作?在这种情况下,您要查找的语法是:

onPanResponderMove: (e, gestureState) => {
    ...some actions...
    Animated.event([null, {dx: this.state.pan.x}])(e, gestureState);
  },

答案 1 :(得分:1)

如果你想包装Animated.event,你需要调用包装器并返回回调:

onPanResponderMove: (() => {
    ...some actions...
    return Animated.event([null, {dx: this._pan}]);
  })(),

这是因为Animated.event返回另一个函数(使用提供的映射将事件数据绑定到组件变量,因此它可以在它们上调用setValue),而onManResponderMove监听器又在移动事件上调用它