为什么 PanResponder 不能与 useEffect Hook 一起使用?

问题描述

我正在尝试使用 useEffect 寻找 ComponentWillMount 方法的替代品。但是在初始渲染之前不会创建 panresponder 变量。 任何人都可以告诉我我在这里做的任何错误吗?如果没有 useEffect,页面将被渲染。手势不会被捕获。

      const makeup = () => {
        useEffect(() => {
            console.log('I am about to render!');
            const panResponder = useRef(
              PanResponder.create({
                onStartShouldSetPanResponder: (e,gestureState) => true,onPanResponderMove: (e,gestureState) => {....},onPanResponderRelease: (e,gestaureState) => {....}
              }));
          },[]);

        return ARTICLES.map((item,i) => {
          console.log("Makeup i:"+i+" item:"+item);
          if (i === index.currentIndex - 1) {
            return (
              <Animated.View
                key={item.id}
                style={swipeCardPosition.getLayout()}
                {...panResponder.panHandlers}
              >
                  
              </Animated.View>
            );
          }
          if (i < index.currentIndex) {
            return null;
          }
          return (
            <Animated.View
              key={item.id}
              style={index.currentIndex === i ? position.getLayout() : null}
              {...(index.currentIndex === i
                ? { ...panResponder.panHandlers }
                : null)}
>
            </Animated.View>
          );
        }).reverse();
      };
[Error on execution][1] [1]: https://i.stack.imgur.com/sls5E.png

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)