Animated.event不会更改状态

时间:2019-04-07 19:54:43

标签: react-native scroll react-animated

在react-native中,我正在使用here中发现的Swiper模块:

<Swiper
      bounces={true}
      loop={false}
      showsPagination={false}
      onScroll={this.handleScroll}
      scrollEventThrottle={1}
    >...

然后在render方法之外,我定义了handleScroll:

handleScroll = Animated.event(
  [{ nativeEvent: { contentOffset: { x: this.state.left } } }],
  {
    listener: event => {
      console.log(this.state.left);
    }
  });

在Swiper上滚动并查看输出时,没有任何变化。

我知道可以将Animated.event直接放到onScroll中,它的工作原理是这样的,但是我很好奇为什么它不起作用

1 个答案:

答案 0 :(得分:1)

Animated.event()返回您需要调用该函数的函数处理程序。 试试这个。

handleScroll = (event) => Animated.event(
  [{ nativeEvent: { contentOffset: { x: this.state.left } } }],
  {
    listener: event => {
      console.log(this.state.left);
    }
  })(event);