如何从Panresponder onMove回调中的滚动视图获取视图索引(React Native)

时间:2020-04-06 12:27:46

标签: reactjs react-native

我目前正在使用一个带有一些子视图组件的滚动视图。我也向滚动视图添加了一个响应者。当我开始在滚动视图内部拖动时,子视图组件必须更改颜色。

我正在尝试从panresponder onMove回调上的滚动视图获取View的索引,以便使用该视图的索引可以更改相应视图的颜色。如何在本机反应中做到这一点?

例如,请检查此链接以获取我要实现的目标。 http://pablofierro.github.io/react-drag-select

感谢您的帮助。 谢谢

到目前为止取得的进展: 我需要在响应者onMove回调上的手势视图索引

<ScrollView
  {...this.state.isLongTapped === true ? 
  {...this._panResponder.panHandlers } : null}>
              {dates.map(date => {
                return (
                  <View key={date} style={styles.rowContainer}>
                      <View style={{ backgroundColor: 'transparent'}}>
                        {this.state.times.map((time, index) => {
                          containerStyle = object;
                          timeData = [];
                          let scheduleIndex = 0;
                          if (isCurrentBoard) {
                            let schedule = time.schedules;
                            if (schedule) {
                              scheduleIndex = this.getColumnIndexForDate(date.toString());
                              timeData.push(schedule[scheduleIndex])
                            }
                          }
                          return (
                            <GestureView
                              gestureCallBack={this.gestureSelectSchedule}>
                            </GestureView>
                          );
                        })}
                      </View>
                  </View>)
              })}
            </ScrollView>

  gestureSelectSchedule = () => {
    this._panResponder = PanResponder.create({
      onStartShouldSetPanResponder: () => true,
      onPanResponderGrant: (event,gestureState) => {

      },
      onMoveShouldSetPanResponderCapture: () => true,
      onMoveShouldSetPanResponder: () => true,
      onPanResponderMove: (event, gestureState) => {      
      },
      onPanResponderEnd: (e, gestureState) => {

      }
    });
    this.setState({ isLongTapped: true });
  }

0 个答案:

没有答案